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()); }
/** * 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; }