designcise/bitframe-fastroute

FastRoute router middleware for BitFrame microframework

v4.0.0 2023-07-01 23:47 UTC

This package is auto-updated.

Last update: 2024-04-30 00:29:58 UTC


README

CI Maintainability Test Coverage

FastRoute wrapper class to manage http routes as a middleware.

Installation

Install using composer:

$ composer require designcise/bitframe-fastroute

Please note that this package requires PHP 8.2.0 or newer.

Examples

Using Attributes for Route Declaration

class SomeController
{
    #[Route(['GET'], '/hello/123')]
    public function indexAction(
        ServerRequestInterface $request,
        RequestHandlerInterface $handler,
    ): ResponseInterface {
        $response = $handler->handle($request);
        $response->getBody()->write(
            "BitFramePHP - 👋 Build Something Amazing Today!"
        );

        return $response;
    }
}
use BitFrame\App;
use BitFrame\Emitter\SapiEmitter;
use BitFrame\FastRoute\Router;
use SomeController;

require 'vendor/autoload.php';

$app = new App();
$router = new Router();

$router->registerControllers([
    new SomeController(),
]);

$app->run([
    SapiEmitter::class,
    $router,
    // ...
]);

Using Inline Callback to Handle Route

use BitFrame\App;
use BitFrame\Emitter\SapiEmitter;
use BitFrame\FastRoute\Router;

require 'vendor/autoload.php';

$app = new App();
$router = new Router();

$router->map(['GET', 'POST'], '/test', function ($request, $handler) {
    $response = $handler->handle($request);
    $response->getBody()->write('Test Page');
    return $response;
});

$app->run([
    SapiEmitter::class,
    $router,
    // ...
]);

Tests

To run the tests you can use the following commands:

Command Type
composer test PHPUnit tests
composer style CodeSniffer
composer md MessDetector
composer check PHPStan

Contributing

License

Please see License File for licensing information.