- require_once($actionfile);
- $action_class = ucfirst($action) . "Action";
- call_user_func(array($action_class, 'handle'), $_REQUEST);
+ require_once($actionfile);
+ $action_class = ucfirst($action)."Action";
+ $action_obj = new $action_class();
+ 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;
+ }
+ if (call_user_func(array($action_obj, 'prepare'), $_REQUEST)) {
+ call_user_func(array($action_obj, 'handle'), $_REQUEST);
+ }