public function callAction($request) { if ($this->hasAction($request['action']) || Controller::hasViewForAction($request)) { return $this->dispatch($request); } else { throw new MissingActionException(array('controller' => $request['controller'], 'action' => $request['action'])); } }
public static function dispatch($request = null) { $request = self::normalize($request); try { $class = Inflector::camelize($request['controller']) . 'Controller'; $controller = Controller::load($class, true); return $controller->callAction($request); } catch (MissingControllerException $e) { if (Controller::hasViewForAction($request)) { $controller = new AppController(); return $controller->callAction($request); } else { throw $e; } } }