/**
* instance.
*
* @method instance
*
* @param array$config
* @return static
*/
public static function instance($config = [])
{
static $instance;
if (is_null($instance) === false) {
return $instance;
}
$config = array_merge(['enabled' => true, 'showBar' => true, 'editor' => 'subl://open?url=file://%file&line=%line', 'maxDepth' => 4, 'maxLength' => 1000, 'scream' => true, 'showLocation' => true, 'strictMode' => true, 'panels' => ['routing' => false, 'database' => true, 'view' => false, 'event' => false, 'session' => true, 'request' => true, 'auth' => false, 'terminal' => false]], $config);
$config['enabled'] = Arr::get($config, 'enabled', false);
$config['showBar'] = Arr::get($config, 'showBar', false);
$mode = Debugger::DETECT;
switch ($config['enabled']) {
case true:
$mode = Debugger::DEVELOPMENT;
break;
case false:
$mode = Debugger::PRODUCTION;
break;
}
Debugger::enable($mode);
$debugbar = new Debugbar($config);
$debugbar->setupBar();
return $instance = $debugbar;
}