Create an error making trait

Widgets can throw fatal errors too
This commit is contained in:
Samuel Georges 2017-06-11 22:38:03 +10:00
parent a2a7eec4f5
commit c0aa03a400
4 changed files with 31 additions and 18 deletions

View File

@ -15,7 +15,6 @@ use BackendAuth;
use Backend\Models\UserPreference;
use Backend\Models\Preference as BackendPreference;
use Cms\Widgets\MediaManager;
use System\Classes\ErrorHandler;
use October\Rain\Exception\AjaxException;
use October\Rain\Exception\SystemException;
use October\Rain\Exception\ValidationException;
@ -37,13 +36,9 @@ class Controller extends Extendable
use \System\Traits\AssetMaker;
use \System\Traits\ConfigMaker;
use \System\Traits\EventEmitter;
use \Backend\Traits\ErrorMaker;
use \Backend\Traits\WidgetMaker;
/**
* @var string Object used for storing a fatal error.
*/
protected $fatalError;
/**
* @var object Reference the logged in admin user.
*/
@ -610,16 +605,6 @@ class Controller extends Extendable
return $this;
}
/**
* Sets standard page variables in the case of a controller error.
*/
public function handleError($exception)
{
$errorMessage = ErrorHandler::getDetailedMessage($exception);
$this->fatalError = $errorMessage;
$this->vars['fatalError'] = $errorMessage;
}
//
// Hints
//

View File

@ -18,6 +18,7 @@ abstract class WidgetBase extends Extendable
use \System\Traits\AssetMaker;
use \System\Traits\ConfigMaker;
use \System\Traits\EventEmitter;
use \Backend\Traits\ErrorMaker;
use \Backend\Traits\WidgetMaker;
use \Backend\Traits\SessionMaker;

View File

@ -0,0 +1,28 @@
<?php namespace Backend\Traits;
use System\Classes\ErrorHandler;
/**
* Error Maker Trait
* Adds exception based methods to a class, goes well with `System\Traits\ViewMaker`.
*
* @package october\backend
* @author Alexey Bobkov, Samuel Georges
*/
trait ErrorMaker
{
/**
* @var string Object used for storing a fatal error.
*/
protected $fatalError;
/**
* Sets standard page variables in the case of a controller error.
*/
public function handleError($exception)
{
$errorMessage = ErrorHandler::getDetailedMessage($exception);
$this->fatalError = $errorMessage;
$this->vars['fatalError'] = $errorMessage;
}
}

View File

@ -13,10 +13,9 @@ use Symfony\Component\Debug\Exception\FatalThrowableError;
* View Maker Trait
* Adds view based methods to a class
*
* @package october\backend
* @package october\system
* @author Alexey Bobkov, Samuel Georges
*/
trait ViewMaker
{
/**