Example #1
0
 public function testRouting()
 {
     $application = Application::create();
     $application->addRoute(new HelloRoute());
     $request = new Request();
     $this->assertResponse($application->handle($request))->hasStatusCode(404);
     $request->setPath('/a');
     $this->assertResponse($application->handle($request))->hasStatusCode(200)->hasBody('Hello');
     $request->setPath('/b');
     $this->assertResponse($application->handle($request))->hasStatusCode(200)->hasBody('World');
     $request->setPath('/c');
     $this->assertResponse($application->handle($request))->hasStatusCode(404);
 }
Example #2
0
use Brick\App\Application;
use Brick\Http\Request;
use Brick\Http\Response;
use Brick\App\Routing\Route;
use Brick\App\Routing\RouteMatch;
use Brick\App\Event\NonResponseResultEvent;
class MyRoute implements Route
{
    public function match(Request $request)
    {
        return RouteMatch::forFunction(function () {
            return ["test" => "hop"];
        });
    }
}
class JsonPlugin implements \Brick\App\Plugin
{
    public function register(\Brick\Event\EventDispatcher $dispatcher)
    {
        $dispatcher->addListener(NonResponseResultEvent::class, function (NonResponseResultEvent $event) {
            $response = new Response();
            $response->setContent(json_encode($event->getControllerResult()));
            $response->setHeader('Content-Type', 'application/json');
            $event->setResponse($response);
        });
    }
}
$application = Application::create();
$application->addRoute(new MyRoute());
$application->addPlugin(new JsonPlugin());
$application->run();