Example #1
0
 /**
  * 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());
 }
Example #2
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());
 }
Example #3
0
 public function testRuleGetterAndSetter()
 {
     $rule = new Rule();
     $this->req->setRule($rule);
     $this->assertEquals($rule, $this->req->getRule());
 }
Example #4
0
 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);
 }
Example #5
0
 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]);
 }
Example #6
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