1. Go to this page and download the library: Download makise-co/middleware library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
makise-co / middleware example snippets
declare(strict_types=1);
use MakiseCo\Middleware\Dispatcher;
use MakiseCo\Middleware\DispatcherFactory;
use MakiseCo\Middleware\MiddlewareResolver;
$dispatcher = new Dispatcher([$middleware1, $middleware2, $requestHanlder]);
// or you can use MiddlewareResolver with PsrContainer implementation to resolve middlewares
$dispatcher = new Dispatcher(
[Middleware1::class, Middleware2::class, RequestHandler::class],
new MiddlewareResolver($container)
);
// or you can use Dispatcher factory (with optional MiddlewareResolver)
$factory = new DispatcherFactory(new MiddlewareResolver($container));
$dispatcher = $factory->create([Middleware1::class, Middleware2::class, RequestHandler::class]);
$response = $dispatcher->handle($request);
declare(strict_types=1);
use MakiseCo\Middleware\MiddlewarePipeFactory;
use MakiseCo\Middleware\MiddlewareResolver;
$factory = new MiddlewarePipeFactory();
$pipeline = $factory->create([$middleware1, $middleware2, $requestHanlder]);
// or you can use MiddlewareResolver with PsrContainer implementation to resolve middlewares
$factory = new MiddlewarePipeFactory(new MiddlewareResolver($container));
$pipeline = $factory->create([Middleware1::class, MIddleware2::class, RequestHandler::class]);
$response = $pipeline->handle($request);
declare(strict_types=1);
use MakiseCo\Middleware\MiddlewarePipeFactory;
$factory = new MiddlewarePipeFactory();
$subPipeline = $factory->create([$middleware1_1, $middleware1_2]);
$pipeline = $factory->create([$middleware1, $subPipeline, $middleware2, $requestHanlder]);
declare(strict_types=1);
use MakiseCo\Middleware\ErrorHandlingMiddleware;
use MakiseCo\Middleware\MiddlewarePipeFactory;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
class HttpErrorHandler implements \MakiseCo\Middleware\ErrorHandlerInterface
{
private ResponseFactoryInterface $responseFactory;
private LoggerInterface $logger;
private bool $debug;
public function __construct(ResponseFactoryInterface $responseFactory, LoggerInterface $logger, bool $debug)
{
$this->responseFactory = $responseFactory;
$this->logger = $logger;
$this->debug = $debug;
}
public function handle(Throwable $e, ServerRequestInterface $request): ResponseInterface
{
// TODO: Write own error handler
$this->logger->error(...);
if ($this->debug) {
// TODO: Create detailed error response
}
return $this->responseFactory->createResponse(500);
}
}
$errorHandlingMiddleware = new ErrorHandlingMiddleware(
new HttpErrorHandler($responseFactory, $logger, true)
);
$factory = new MiddlewarePipeFactory();
$pipeline = $factory->create([
$errorHandlingMiddleware,
$middleware1,
$middleware2,
$requestHandler,
// ...
]);
$response = $pipeline->handle($request);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.