Laravel: 更改异常处理程序的位置 class

Laravel: changing the location of the Exception handler class

我们正在重组应用程序的文件夹布局,使其更符合 DDD 域驱动程序设计理念。

例如

/app
   /Users
   /Jobs
   /Authentication
   /Http
   /Console
   /...
/bootstrap
/config
/...

尽管我们遇到的一个问题是重新定位 /Exceptions/Handler.php class。我们的视图会将其重命名为 ExceptionHandler 并将其放置在 /app 目录的根目录中。

我们得到

PHP Fatal error: Uncaught ReflectionException: Class App\Exceptions\Handler does not exist ...

搬迁后出现错误。

我假设 Laravel 非常依赖该文件位于该确切位置,对吗?

您还必须更新它在服务容器中的绑定。 下面的示例来自 Laravel 5.2 但我猜它应该对所有 Laravel 5+.

都是一样的
// bootstrap/app.php
$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class // Change this line with the new namespace
);