예제 #1
0
 /**
  * @param \Janeiro\Request\AbstractRequest $request
  * @throws \Janeiro\Exception
  * @return \Janeiro\Response
  */
 public function indexAction(AbstractRequest $request)
 {
     $response = null;
     if (1 === preg_match('/^[\\/A-Za-z]+$/', $request->getParameter('uri'), $uri)) {
         $namespaces = (array) $this->registry->get('routing.namespace');
         $segments = explode('/', $uri[0]);
         $file = array_pop($segments) . '.js';
         foreach ($namespaces as $namespace) {
             $path = [ROOT, 'src', str_replace("\\", DS, $namespace), $segments[0], 'View', 'JavaScript'];
             $path = implode(DS, array_merge($path, array_slice($segments, 1)));
             if (is_readable($path . DS . $file)) {
                 $this->view->setTemplateDirectory($path);
                 $this->view->setTemplate($file);
                 $response = new Response('text/javascript');
                 $response->setHeader('Expires', 'Wed, 01 Jan 2014 00:00:00 GMT');
                 $response->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate');
                 $response->setHeader('Pragma', 'no-cache');
                 $response->setContent($this->view->render());
                 $response->setStatus(200);
                 break;
             }
         }
     }
     if (empty($response)) {
         throw new Exception('Resource not found', Exception::HTTP_NOT_FOUND);
     }
     return $response;
 }
예제 #2
0
 /**
  * Apply routing table and start dispatch forwarding loop
  *
  * @param \Janeiro\Request\AbstractRequest $request
  * @return \Janeiro\Response
  */
 public function dispatch(AbstractRequest $request)
 {
     try {
         $this->route = $this->router->getRoute($request);
         $this->response = $this->loop($request);
     } catch (\Exception $e) {
         $this->response->setException($e);
     }
     return $this->response;
 }
예제 #3
0
 /**
  * @method DELETE
  * @return \Janeiro\Response
  */
 public function deleteAction()
 {
     $response = new Response();
     $response->setStatus(200);
     try {
         $this->userSession->delete();
     } catch (\Exception $e) {
         $response->setStatus(500);
     }
     return $response;
 }
 public function forwardModuleAction()
 {
     $response = new Response();
     $response->setContent('i was redirected from another module');
     return $response;
 }