refactoring for dependency injection and testability.
This commit is contained in:
@@ -11,6 +11,13 @@ class Examiner {
|
||||
*/
|
||||
public $exception;
|
||||
|
||||
/**
|
||||
* The file manager instance.
|
||||
*
|
||||
* @var File
|
||||
*/
|
||||
private $file;
|
||||
|
||||
/**
|
||||
* Human-readable error levels and descriptions.
|
||||
*
|
||||
@@ -35,12 +42,14 @@ class Examiner {
|
||||
/**
|
||||
* Create a new exception examiner instance.
|
||||
*
|
||||
* @param Exception $e
|
||||
* @param Exception $exception
|
||||
* @param File $file
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($e)
|
||||
public function __construct($exception, File $file)
|
||||
{
|
||||
$this->exception = $e;
|
||||
$this->exception = $exception;
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,7 +89,7 @@ class Examiner {
|
||||
*/
|
||||
public function context()
|
||||
{
|
||||
return File::snapshot($this->exception->getFile(), $this->exception->getLine());
|
||||
return $this->file->snapshot($this->exception->getFile(), $this->exception->getLine());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,28 +11,28 @@ class Handler {
|
||||
*
|
||||
* @var Examiner
|
||||
*/
|
||||
public $exception;
|
||||
public $examiner;
|
||||
|
||||
/**
|
||||
* Create a new exception handler instance.
|
||||
*
|
||||
* @param Exception $e
|
||||
* @param Examiner $examiner
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($e)
|
||||
public function __construct(Examiner $examiner)
|
||||
{
|
||||
$this->exception = new Examiner($e);
|
||||
$this->examiner = $examiner;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new exception handler instance.
|
||||
*
|
||||
* @param Exception $e
|
||||
* @param Examiner $examiner
|
||||
* @return Handler
|
||||
*/
|
||||
public static function make($e)
|
||||
public static function make(Examiner $examiner)
|
||||
{
|
||||
return new static($e);
|
||||
return new static($examiner);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,11 +66,7 @@ class Handler {
|
||||
*/
|
||||
private function log()
|
||||
{
|
||||
$parameters = array(
|
||||
$this->exception->severity(),
|
||||
$this->exception->message(),
|
||||
$this->exception->getTraceAsString(),
|
||||
);
|
||||
$parameters = array($this->examiner->severity(), $this->examiner->message(), $this->examiner->getTraceAsString());
|
||||
|
||||
call_user_func_array(Config::get('error.logger'), $parameters);
|
||||
}
|
||||
@@ -83,7 +79,7 @@ class Handler {
|
||||
*/
|
||||
private function get_response($detailed)
|
||||
{
|
||||
return ($detailed) ? $this->detailed_response() : Response::error('500');
|
||||
return ($detailed) ? $this->detailed_response() : new Error('500');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,11 +90,11 @@ class Handler {
|
||||
private function detailed_response()
|
||||
{
|
||||
$data = array(
|
||||
'severity' => $this->exception->severity(),
|
||||
'message' => $this->exception->message(),
|
||||
'line' => $this->exception->getLine(),
|
||||
'trace' => $this->exception->getTraceAsString(),
|
||||
'contexts' => $this->exception->context(),
|
||||
'severity' => $this->examiner->severity(),
|
||||
'message' => $this->examiner->message(),
|
||||
'line' => $this->examiner->getLine(),
|
||||
'trace' => $this->examiner->getTraceAsString(),
|
||||
'contexts' => $this->examiner->context(),
|
||||
);
|
||||
|
||||
return Response::make(View::make('error.exception', $data), 500);
|
||||
|
||||
Reference in New Issue
Block a user