コード例 #1
0
 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);
 }
コード例 #2
0
 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.');
     }
 }
コード例 #3
0
 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());
 }