laminas/laminas-httphandlerrunner
Executes PSR-15 HTTP request handlers by bridging PSR-7 requests/responses with common PHP runtimes. Provides runners for SAPI and other environments, simplifying bootstrap, emitting responses, and integrating middleware/handler apps in Laminas or any PSR stack.
Route::get() with a RequestHandler instance).Http\Kernel and Pipeline classes continue to support PSR-15, ensuring low-effort integration (e.g., replacing Closure-based routes with RequestHandler instances).Laminas\Stratigility).JsonResource logic within a RequestHandler).laminas/laminas-httphandlerrunner (~1MB) and optionally laminas/stratigility for middleware conversion. Justify with use case.RequestHandler instances (e.g., dependency-injected handlers).RequestHandler instances be instantiated (e.g., via Laravel’s IoC container, manual DI)?App\Exceptions\Handler)?php-http/middleware-serializer)?Route::get(..., fn() => ...) with Route::get(..., new MyHandler()).Laminas\Stratigility\MiddlewarePipe.RequestHandler to encapsulate JsonResource logic.Closure-based routes with RequestHandler instances.// Before
Route::get('/api/data', fn() => DataController::fetch());
// After
Route::get('/api/data', new DataHandler());
Laminas\Stratigility to wrap Laravel middleware:
$middleware = new Laminas\Stratigility\MiddlewarePipe();
$middleware->pipe(new AuthMiddleware());
$middleware->pipe(new LogMiddleware());
Route::get('/protected', $middleware);
JsonResource logic with RequestHandler for cleaner separation.class UserHandler implements RequestHandlerInterface {
public function __invoke(ServerRequestInterface $request): ResponseInterface {
$user = User::find($request->getAttribute('id'));
return new JsonResponse(['data' => $user]);
}
}
RequestHandler is the entry point (Bref already supports PSR-15).laminas/laminas-diactoros).psr/http-message (already in Laravel).laminas/stratigility for middleware conversion.RequestHandler.php artisan serve).RequestHandler.Request facade).laminas/laminas-httphandlerrunner updates.How can I help you explore Laravel packages today?