Commit 1209ce76 authored by Taylor Otwell's avatar Taylor Otwell

Working on exception handling. WIP.

parent 3c614ac5
...@@ -29,7 +29,9 @@ class Kernel extends ConsoleKernel { ...@@ -29,7 +29,9 @@ class Kernel extends ConsoleKernel {
} }
catch (Exception $e) catch (Exception $e)
{ {
$output->writeln((string) $e); $this->reportException($e);
$this->renderException($output, $e);
return 1; return 1;
} }
......
...@@ -34,7 +34,9 @@ class Kernel extends HttpKernel { ...@@ -34,7 +34,9 @@ class Kernel extends HttpKernel {
} }
catch (Exception $e) catch (Exception $e)
{ {
throw $e; $this->reportException($e);
return $this->renderException($request, $e);
} }
} }
......
<?php namespace App\Infrastructure;
use Exception;
use Psr\Log\LoggerInterface;
use Symfony\Component\Debug\ExceptionHandler as SymfonyDisplayer;
use Illuminate\Contracts\Debug\ExceptionHandler as ExceptionHandlerContract;
class ExceptionHandler implements ExceptionHandlerContract {
/**
* The log implementation.
*
* @var \Psr\Log\LoggerInterface
*/
protected $log;
/**
* Create a new exception handler instance.
*
* @param \Psr\Log\LoggerInterface $log
* @return void
*/
public function __construct(LoggerInterface $log)
{
$this->log = $log;
}
/**
* Report or log an exception.
*
* @param \Exception $e
* @return void
*/
public function report(Exception $e)
{
$this->log->error((string) $e);
}
/**
* Render an exception into a response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Symfony\Component\HttpFoundation\Response
*/
public function render($request, Exception $e)
{
return (new SymfonyDisplayer)->createResponse($e);
}
/**
* Render an exception to the console.
*
* @param \Symfony\Component\Console\Output\OutputInterface $output
* @param \Exception $e
* @return void
*/
public function renderForConsole($output, Exception $e)
{
$output->writeln((string) $e);
}
}
...@@ -36,6 +36,11 @@ $app->singleton( ...@@ -36,6 +36,11 @@ $app->singleton(
'App\Console\Kernel' 'App\Console\Kernel'
); );
$app->singleton(
'Illuminate\Contracts\Debug\ExceptionHandler',
'App\Infrastructure\ExceptionHandler'
);
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Return The Application | Return The Application
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment