public function route(Zorg_Request $request = NULL) { $requestArray = parse_url($request->getUrl()); $path = $requestArray['path']; $args = array(); if (isset($requestArray['query'])) { parse_str($requestArray['query'], $args); } $route = array(); if (!array_key_exists('controller', $args)) { $route['controller'] = 'index'; } else { $route['controller'] = $args['controller']; unset($args['controller']); } if (!array_key_exists('action', $args)) { $route['action'] = 'index'; } else { $route['action'] = $args['action']; unset($args['action']); } $params = $this->_getParams($args); $request->setController($route['controller']); $request->setAction($route['action']); $request->setParams($params); }
public function forward(Zorg_Request $request) { if (file_exists(APP_PATH . DIRECTORY_SEPARATOR . 'controller' . DIRECTORY_SEPARATOR . $request->getController() . '.php')) { $class = $request->getController() . '_Controller'; $method = $request->getAction() . 'Action'; if (method_exists($class, $method)) { $ctrl = new $class($request); $ctrl->{$method}(); } else { throw new Zorg_Dispatcher_Exception('Action ' . $request->getAction() . ' doesn\'t exists in controller ' . $request->getController()); } } else { // Controller file doesn't exists throw new Zorg_Dispatcher_Exception('Controller ' . $request->getController() . ' doesn\'t exists.'); } }
public function __construct(Zorg_Request $request) { $this->_request = $request; $this->_response = new Zorg_Response(); $this->_view = new Zorg_View($this->_request->getController(), $this->_request->getAction()); }