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

问题描述 投票:0回答:2

我们正在重组应用程序的文件夹布局,使其更符合

DDD
域驱动程序设计理念。

例如

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

尽管我们遇到的一个问题是重新定位

/Exceptions/Handler.php
类。我们的视图会将其重命名为
ExceptionHandler
并将其放置在
/app
目录的根目录中。

我们得到

PHP 致命错误:未捕获的 ReflectionException:类 App\Exceptions\Handler 不存在...

重新定位后出现错误。

我假设 Laravel 对该文件位于该确切位置有很强的依赖性,这是正确的吗?

php twitter-bootstrap api laravel domain-driven-design
2个回答
3
投票

您还必须更新它在服务容器中的绑定。 下面的示例来自 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
);

0
投票

对于 laravel >= 7 使用 Throwable 代替 exceptions/Handler.php 中的异常

使用Throwable;

公共函数报告(可抛出$异常);

公共函数渲染($请求,可抛出$异常);

© www.soinside.com 2019 - 2024. All rights reserved.