/** * handle the request * @return mixed */ public function handle() { $method = $this->getMeta() ? 'handleMeta' : static::$verb_method_map[$this->request->getMethod()]; return $this->{$method}($this->getModelClass($this->getModelName()), $this->getModelId()); }
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()); }
public function testRuleGetterAndSetter() { $rule = new Rule(); $this->req->setRule($rule); $this->assertEquals($rule, $this->req->getRule()); }
public function testPutMethodWithNoIdTriggersCreateHandler() { $req = new Request(); $rou = new RouterMock(); $req->setUri('/users/'); $rou->setRequest($req); $req->setMethod(Verb::PUT); $rou->handle(); $this->assertTrue($rou->handle_create_model_called); }
public function testRequestMethodIsProperlyCompared() { $req = new Request(); $req->setMethod(Verb::PUT); $req->setUri('/mypage'); $this->assertTrue(Rule::create(Rule::transpile('/{page}'), ['method' => Verb::PUT])->matches($req)[0]); }
<?php namespace Fabrico\Runtime\Setup\Http; use Efficio\Http\Request; use Efficio\Http\Response; use Efficio\Http\RuleBook; use Efficio\Http\Status; use Exception; use Fabrico\Renderer; use Fabrico\Runtime\Instance; require 'vendor/autoload.php'; $app = Instance::create(); $conf = $app->getConfiguration(); $res = new Response(); $req = new Request(); $req->importFromGlobals(); $rules = new RuleBook(); $rules->load($conf->get('routes'), true); $app->setRuleBook($rules); $renderer = new Renderer(); $renderer->handlers($conf->get('app:views:renderers')); $app->setRenderer($renderer); try { if (!$app->route($req, $res)) { $res->setStatusCode(Status::NOT_FOUND); $res->setContentType(Response::HTML); $res->setContent(file_get_contents('public/404.html')); } } catch (Exception $ex) { // reset headers in case something like a redirect header was set before