/** * @param Rsc_Http_Parameters $method * @return bool */ public function handleRequest(Rsc_Http_Parameters $method) { /** @var Rsc_Mvc_Module $module */ if (!$method->has('route')) { return false; } $route = $method->get('route'); $module = isset($route['module']) ? $route['module'] : $this->environment->getConfig()->get('default_module'); $action = isset($route['action']) ? $route['action'] : 'index'; if (null !== ($module = $this->environment->getModule(strtolower($module)))) { $controller = $module->getController(); if ($controller !== null && method_exists($controller, $action = sprintf('%sAction', $action))) { return call_user_func_array(array($controller, $action), array($controller->getRequest())); } } return false; }
/** * Do validation * @param Rsc_Http_Parameters $method */ protected function doValidation(Rsc_Http_Parameters $method) { if (empty($this->rules)) { return; } /** @var Rsc_Form_Rule_Interface $rule */ foreach ($this->rules as $field => $rules) { if (!is_array($this->rules[$field])) { $rules = array($rules); } foreach ($rules as $rule) { if ($method->has($field)) { if (!$rule->validate($method->get($field))) { if (!is_array($this->errors)) { $this->errors = array(); } $this->errors[$field][] = $rule->getMessage(); } } } } }