Aura Router implementation for chubbyphp-framework.
- php: ^7.2
- aura/router: ^3.1
- chubbyphp/chubbyphp-framework: ^3.1
Through Composer as chubbyphp/chubbyphp-framework-router-aura.
composer require chubbyphp/chubbyphp-framework-router-aura "^1.0"
<?php
declare(strict_types=1);
namespace App;
use Chubbyphp\Framework\Application;
use Chubbyphp\Framework\ErrorHandler;
use Chubbyphp\Framework\Middleware\ExceptionMiddleware;
use Chubbyphp\Framework\Middleware\RouterMiddleware;
use Chubbyphp\Framework\RequestHandler\CallbackRequestHandler;
use Chubbyphp\Framework\Router\Aura\Router;
use Chubbyphp\Framework\Router\Route;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Psr7\Factory\ResponseFactory;
use Slim\Psr7\Factory\ServerRequestFactory;
$loader = require __DIR__.'/vendor/autoload.php';
set_error_handler([new ErrorHandler(), 'errorToException']);
$responseFactory = new ResponseFactory();
$app = new Application([
new ExceptionMiddleware($responseFactory, true),
new RouterMiddleware(new Router([
Route::get('/hello/{name}', 'hello', new CallbackRequestHandler(
function (ServerRequestInterface $request) use ($responseFactory) {
$name = $request->getAttribute('name');
$response = $responseFactory->createResponse();
$response->getBody()->write(sprintf('Hello, %s', $name));
return $response;
}
), [], [Router::PATH_TOKENS => ['name' => '[a-z]+']])
]), $responseFactory),
]);
$app->emit($app->handle((new ServerRequestFactory())->createFromGlobals()));
Dominik Zogg 2020