- if ($config['db']['mirror'] && $action_obj->is_readonly()) {
- if (is_array($config['db']['mirror'])) {
- # "load balancing", ha ha
- $k = array_rand($config['db']['mirror']);
- $mirror = $config['db']['mirror'][$k];
- } else {
- $mirror = $config['db']['mirror'];
- }
- $config['db']['database'] = $mirror;
- }
- call_user_func(array($action_obj, 'init'), $_REQUEST);
- call_user_func(array($action_obj, 'handle'), $_REQUEST);
+
+ if ($config['db']['mirror'] && $action_obj->isReadOnly()) {
+ if (is_array($config['db']['mirror'])) {
+ // "load balancing", ha ha
+ $k = array_rand($config['db']['mirror']);
+
+ $mirror = $config['db']['mirror'][$k];
+ } else {
+ $mirror = $config['db']['mirror'];
+ }
+ $config['db']['database'] = $mirror;
+ }
+ if (call_user_func(array($action_obj, 'prepare'), $_REQUEST)) {
+ call_user_func(array($action_obj, 'handle'), $_REQUEST);
+ }