1. Go to this page and download the library: Download lighthouse/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/ */
lighthouse / middleware example snippets
use Lighthouse\Middleware\Pipeline;
use Lighthouse\Middleware\CallableMiddleware;
use Psr\Http\Server\RequestHandlerInterface;
$pipeline = new Pipeline();
// Add middleware
$pipeline->pipe(new LoggingMiddleware());
$pipeline->pipe(new AuthenticationMiddleware());
$pipeline->pipe(new RoutingMiddleware());
// Process request
$response = $pipeline->handle($request);
$pipeline->pipe(function ($request, $handler) {
if (!$this->isAuthenticated($request)) {
// Return immediately, skip remaining middleware
return new Response(401);
}
return $handler->handle($request);
});
use Lighthouse\Middleware\FallbackHandler;
// Throw exception (default)
$pipeline = new Pipeline();
// Return 404 response
$pipeline = new Pipeline(new FallbackHandler(
fn() => new Response(404, body: 'Not Found')
));
// Or set later
$pipeline->fallback($customHandler);
$pipeline->through([
new CorsMiddleware(),
new AuthMiddleware(),
new RateLimitMiddleware(),
]);
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
class TimingMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
$start = microtime(true);
$response = $handler->handle($request);
$duration = microtime(true) - $start;
return $response->withHeader('X-Response-Time', sprintf('%.3fms', $duration * 1000));
}
}
$middleware = new CallableMiddleware(
fn($request, $handler) => $handler->handle($request)
);
$handler = new NextHandler(
fn($request) => new Response(200)
);
// Throws RuntimeException
$handler = new FallbackHandler();
// Returns custom response
$handler = new FallbackHandler(fn() => new Response(404));
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.