diff --git a/composer.json b/composer.json index dddbdb5..225ff61 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,6 @@ "timber/timber": "^1.24.0", "monolog/monolog": "^2.9.1", "http-interop/response-sender": "^1.0", - "symfony/debug": "^4.4.44", "illuminate/collections": "^8.53.1||^9.52.16", "statamic/stringy": "^3.1.3", "laminas/laminas-diactoros": "^2.25.2", @@ -23,7 +22,8 @@ "mindplay/middleman": "^3.1.0", "psr/log": "^1.1.4", "laminas/laminas-zendframework-bridge": "^1.7", - "symfony/var-dumper": "^5.0||^6.3.6" + "symfony/var-dumper": "^5.0||^6.3.6", + "symfony/error-handler": "^6.0" }, "require-dev": { "phpunit/phpunit": "^9.6.13", diff --git a/src/Bootstrappers/RegisterExceptionHandler.php b/src/Bootstrappers/RegisterExceptionHandler.php index b4ff838..a5d1f53 100644 --- a/src/Bootstrappers/RegisterExceptionHandler.php +++ b/src/Bootstrappers/RegisterExceptionHandler.php @@ -9,7 +9,7 @@ use Rareloop\Lumberjack\Application; use Rareloop\Lumberjack\Exceptions\HandlerInterface; use Rareloop\Router\Responsable; -use Symfony\Component\Debug\Exception\FatalErrorException; +use Symfony\Component\ErrorHandler\Error\FatalError; use Zend\Diactoros\ServerRequestFactory; use function Http\Response\send; @@ -122,16 +122,14 @@ public function handleShutdown() * * @param array $error * @param int|null $traceOffset - * @return \Symfony\Component\Debug\Exception\FatalErrorException + * @return \Symfony\Component\ErrorHandler\Error\FatalError */ protected function fatalExceptionFromError(array $error, $traceOffset = null) { - return new FatalErrorException( + return new FatalError( $error['message'], $error['type'], - 0, - $error['file'], - $error['line'], + $error, $traceOffset ); } diff --git a/src/Exceptions/Handler.php b/src/Exceptions/Handler.php index 045b6f1..cfb085f 100644 --- a/src/Exceptions/Handler.php +++ b/src/Exceptions/Handler.php @@ -7,8 +7,7 @@ use Psr\Http\Message\ServerRequestInterface; use Rareloop\Lumberjack\Application; use Rareloop\Lumberjack\Facades\Config; -use Symfony\Component\Debug\ExceptionHandler as SymfonyExceptionHandler; -use Symfony\Component\Debug\Exception\FlattenException; +use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer; use Zend\Diactoros\Response\HtmlResponse; class Handler implements HandlerInterface @@ -36,11 +35,11 @@ public function report(Exception $e) public function render(ServerRequestInterface $request, Exception $e) : ResponseInterface { - $e = FlattenException::create($e); + $htmlRenderer = new HtmlErrorRenderer(Config::get('app.debug', false)); - $handler = new SymfonyExceptionHandler(Config::get('app.debug', false)); + $exception = $htmlRenderer->render($e); - return new HtmlResponse($handler->getHtml($e), $e->getStatusCode(), $e->getHeaders()); + return new HtmlResponse($exception->getAsString(), $exception->getStatusCode(), $exception->getHeaders()); } protected function shouldNotReport(Exception $e) diff --git a/tests/Unit/Bootstrappers/RegisterExceptionHandlerTest.php b/tests/Unit/Bootstrappers/RegisterExceptionHandlerTest.php index c19f006..ceac8b8 100644 --- a/tests/Unit/Bootstrappers/RegisterExceptionHandlerTest.php +++ b/tests/Unit/Bootstrappers/RegisterExceptionHandlerTest.php @@ -14,7 +14,6 @@ use Rareloop\Lumberjack\Exceptions\HandlerInterface; use Rareloop\Lumberjack\Test\Unit\BrainMonkeyPHPUnitIntegration; use Rareloop\Router\Responsable; -use Symfony\Component\Debug\Exception\FatalErrorException; use Zend\Diactoros\Response; use Zend\Diactoros\Response\TextResponse; use Zend\Diactoros\ServerRequest; diff --git a/tests/Unit/PostQueryBuilderTest.php b/tests/Unit/PostQueryBuilderTest.php index 8cb501d..6775f00 100644 --- a/tests/Unit/PostQueryBuilderTest.php +++ b/tests/Unit/PostQueryBuilderTest.php @@ -47,12 +47,10 @@ public function can_create_a_builder_from_static_functions() /** * @test - * @runInSeparateProcess */ public function throw_error_on_missing_static_function() { $errorThrown = false; - try { Post::missingStaticFunction(); } catch (Throwable $e) { diff --git a/tests/Unit/ScopedQueryBuilderTest.php b/tests/Unit/ScopedQueryBuilderTest.php index 655231f..ea6be20 100644 --- a/tests/Unit/ScopedQueryBuilderTest.php +++ b/tests/Unit/ScopedQueryBuilderTest.php @@ -111,12 +111,10 @@ public function can_pass_params_into_a_query_scope_on_post_object() /** * @test - * @runInSeparateProcess */ public function missing_query_scope_throws_an_error() { $errorThrown = false; - try { $builder = new ScopedQueryBuilder(PostWithQueryScope::class); $builder->nonExistentScope();