Files
php-flasher/src/Laravel/Middleware/SessionMiddleware.php
T
Younes ENNAJI 6de67f7fb3 chore: Refactor middleware to use Symfony's base response class
This commit updates the FlasherMiddleware and SessionMiddleware to utilize Symfony's base response class instead of Laravel's. This change ensures broader compatibility and addresses the issue with flash message rendering after page refreshes as identified by the community. Preparing for release in v2.0.2.
2024-05-26 13:20:48 +01:00

30 lines
752 B
PHP

<?php
declare(strict_types=1);
namespace Flasher\Laravel\Middleware;
use Flasher\Laravel\Http\Request;
use Flasher\Laravel\Http\Response;
use Flasher\Prime\Http\RequestExtensionInterface;
use Illuminate\Http\Request as LaravelRequest;
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
final readonly class SessionMiddleware
{
public function __construct(private RequestExtensionInterface $requestExtension)
{
}
public function handle(LaravelRequest $request, \Closure $next): mixed
{
$response = $next($request);
if ($response instanceof SymfonyResponse) {
$this->requestExtension->flash(new Request($request), new Response($response));
}
return $response;
}
}