Beispiel #1
0
 public function testRuleIsSavedToRequest()
 {
     $req = new Request();
     $req->setMethod(Verb::GET);
     $req->setUri('/mypage');
     $rand = mt_rand();
     $rule = Rule::create('/mypage', ['random' => $rand], true);
     $this->rulebook->add($rule);
     $this->rulebook->matching($req, true);
     $this->assertEquals($rule, $req->getRule());
 }
Beispiel #2
0
 /**
  * handle a request
  * @param Request $req
  * @param Response $res
  * @return boolean success
  */
 public function route(Request $req, Response $res)
 {
     $ok = false;
     $route = $this->rules->matching($req, true);
     if ($route) {
         // defaults
         $route = array_merge(['format' => 'html', 'base' => 'app/views', 'file' => '', 'action' => '', 'controller' => '', 'namespace' => $this->conf->get('app:namespace')], $route);
         if ($route['file']) {
             // file request
             $ok = $this->runFileRequest($route, $res);
         } else {
             // action request
             $ok = $this->runActionRequest($route, $req, $res);
         }
     }
     $this->setResponseContentType($res, $route['format']);
     return $ok;
 }