Laravel 5.5。应用程序的外观是不是在异常处理程序
问题描述:
工作,我有一个类Laravel 5.5。应用程序的外观是不是在异常处理程序
class Handler extends ExceptionHandler
{
protected $dontReport = [];
public function report(Exception $exception)
{
$environment = \App::environment();
//...
}
//...
}
这样的简化版本,我收到PHP Fatal error: Uncaught Error: Class 'App' not found in .../app/Exceptions/Handler.php:37
。
在应用程序的其他地方它的工作。
在config/app.php
它被注册。
'aliases' => [
'App' => Illuminate\Support\Facades\App::class,
//...
]
答
的问题是jeroennoten/laravel-adminlte
包,config/adminlte.php
文件。
看起来像
'menu' => [
[
'text' => 'API documentation',
'url' => request()->getSchemeAndHttpHost() . '/docs',
'icon' => 'file-o',
],
],
从控制台呼叫request()->getSchemeAndHttpHost()
已导致异常在那一刻的东西涉及到外墙未初始化(将高兴地听到什么),所以我的处理程序已触发第二个例外,我一直在捕捉。
我已经提取菜单创建提供商,但我不知道,如果这是一个很好的解决方案。
class AdminMenuProvider extends ServiceProvider
{
public function boot(Dispatcher $events)
{
$events->listen(BuildingMenu::class, function (BuildingMenu $event) {
$event->menu->add([
'text' => 'API documentation',
'url' => request()->getSchemeAndHttpHost() . '/docs',
'icon' => 'file-o',
]);
//...
}
}
}
答
添加到您的类use App
,那么你可以使用App门面的顶部像App::environment()
问题是我根本无法使用这个门面。 ''App'或'App'都带'use'。为了简单起见,我在示例中使用了'\ App'版本:) –
您是否尝试导入App'使用Illuminate \ Support \ Facades \ App'的完整路径?那样有用吗? – Saad
是的,我也试过了。我决定,这是一个非常奇怪的错误,所以它值得自己的问题:) –