mirror of
https://github.com/php-flasher/php-flasher.git
synced 2026-03-31 15:07:47 +01:00
Merge pull request #184 from php-flasher/issue-176
chore: Refactor middleware to use Symfony's base response class
This commit is contained in:
@@ -5,12 +5,13 @@ declare(strict_types=1);
|
|||||||
namespace Flasher\Laravel\Http;
|
namespace Flasher\Laravel\Http;
|
||||||
|
|
||||||
use Flasher\Prime\Http\ResponseInterface;
|
use Flasher\Prime\Http\ResponseInterface;
|
||||||
use Illuminate\Http\JsonResponse as LaravelJsonResponse;
|
|
||||||
use Illuminate\Http\Response as LaravelResponse;
|
use Illuminate\Http\Response as LaravelResponse;
|
||||||
|
use Symfony\Component\HttpFoundation\JsonResponse as SymfonyJsonResponse;
|
||||||
|
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
|
||||||
|
|
||||||
final readonly class Response implements ResponseInterface
|
final readonly class Response implements ResponseInterface
|
||||||
{
|
{
|
||||||
public function __construct(private LaravelJsonResponse|LaravelResponse $response)
|
public function __construct(private SymfonyResponse $response)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -21,7 +22,7 @@ final readonly class Response implements ResponseInterface
|
|||||||
|
|
||||||
public function isJson(): bool
|
public function isJson(): bool
|
||||||
{
|
{
|
||||||
return $this->response instanceof LaravelJsonResponse;
|
return $this->response instanceof SymfonyJsonResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isHtml(): bool
|
public function isHtml(): bool
|
||||||
@@ -66,7 +67,7 @@ final readonly class Response implements ResponseInterface
|
|||||||
$this->response->setContent($content);
|
$this->response->setContent($content);
|
||||||
|
|
||||||
// Restore original response (eg. the View or Ajax data)
|
// Restore original response (eg. the View or Ajax data)
|
||||||
if ($original) {
|
if ($original && $this->response instanceof LaravelResponse) {
|
||||||
$this->response->original = $original;
|
$this->response->original = $original;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ namespace Flasher\Laravel\Middleware;
|
|||||||
use Flasher\Laravel\Http\Request;
|
use Flasher\Laravel\Http\Request;
|
||||||
use Flasher\Laravel\Http\Response;
|
use Flasher\Laravel\Http\Response;
|
||||||
use Flasher\Prime\Http\ResponseExtensionInterface;
|
use Flasher\Prime\Http\ResponseExtensionInterface;
|
||||||
use Illuminate\Http\JsonResponse as LaravelJsonResponse;
|
|
||||||
use Illuminate\Http\Request as LaravelRequest;
|
use Illuminate\Http\Request as LaravelRequest;
|
||||||
use Illuminate\Http\Response as LaravelResponse;
|
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
|
||||||
|
|
||||||
final readonly class FlasherMiddleware
|
final readonly class FlasherMiddleware
|
||||||
{
|
{
|
||||||
@@ -21,7 +20,7 @@ final readonly class FlasherMiddleware
|
|||||||
{
|
{
|
||||||
$response = $next($request);
|
$response = $next($request);
|
||||||
|
|
||||||
if ($response instanceof LaravelJsonResponse || $response instanceof LaravelResponse) {
|
if ($response instanceof SymfonyResponse) {
|
||||||
$this->responseExtension->render(new Request($request), new Response($response));
|
$this->responseExtension->render(new Request($request), new Response($response));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ namespace Flasher\Laravel\Middleware;
|
|||||||
use Flasher\Laravel\Http\Request;
|
use Flasher\Laravel\Http\Request;
|
||||||
use Flasher\Laravel\Http\Response;
|
use Flasher\Laravel\Http\Response;
|
||||||
use Flasher\Prime\Http\RequestExtensionInterface;
|
use Flasher\Prime\Http\RequestExtensionInterface;
|
||||||
use Illuminate\Http\JsonResponse as LaravelJsonResponse;
|
|
||||||
use Illuminate\Http\Request as LaravelRequest;
|
use Illuminate\Http\Request as LaravelRequest;
|
||||||
use Illuminate\Http\Response as LaravelResponse;
|
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
|
||||||
|
|
||||||
final readonly class SessionMiddleware
|
final readonly class SessionMiddleware
|
||||||
{
|
{
|
||||||
@@ -21,7 +20,7 @@ final readonly class SessionMiddleware
|
|||||||
{
|
{
|
||||||
$response = $next($request);
|
$response = $next($request);
|
||||||
|
|
||||||
if ($response instanceof LaravelJsonResponse || $response instanceof LaravelResponse) {
|
if ($response instanceof SymfonyResponse) {
|
||||||
$this->requestExtension->flash(new Request($request), new Response($response));
|
$this->requestExtension->flash(new Request($request), new Response($response));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ final class SessionMiddlewareTest extends TestCase
|
|||||||
$requestMock = \Mockery::mock(LaravelRequest::class);
|
$requestMock = \Mockery::mock(LaravelRequest::class);
|
||||||
$responseMock = \Mockery::mock(\Symfony\Component\HttpFoundation\Response::class);
|
$responseMock = \Mockery::mock(\Symfony\Component\HttpFoundation\Response::class);
|
||||||
|
|
||||||
$this->requestExtensionMock->allows('flash')->never();
|
$this->requestExtensionMock->allows('flash')->once();
|
||||||
|
|
||||||
$handle = $this->sessionMiddleware->handle($requestMock, fn () => $responseMock);
|
$handle = $this->sessionMiddleware->handle($requestMock, fn () => $responseMock);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user