在 Laravel 5 中存储模型观察者(事件)的位置

Where to Store Model Observers (Events) in Laravel 5

第一次尝试 Laravel 事件和观察者。

http://laravel.com/docs/5.0/eloquent#model-observers

我在一些旧帖子中看到 Laravel 4 存放它们的好地方就在 app/models/observers。但是在 Laravel 5 中,由于文件夹结构发生了一些变化,我想知道存储它们的好地方在哪里?

我应该将它们存储在 Events 文件夹中吗?

这是其中一个可能有错误答案但有多个正确答案的问题。我建议我们重新回顾一下基础知识。

我认为网络应用程序的文件夹结构应该是直观的。第一次看代码的人应该很快明白在哪里找到什么。所以,这就是我的建议。

由于 Laravel 5 在 app 文件夹中有模型,您可以将它们命名为 Models 文件夹。然后您的模型代码将存放在 app/Models。同样,您可以将模型观察者保留在 app/Models/Observers 并相应地命名它们。

您也可以将它们保存在 Events 文件夹或 app 文件夹中单独的 Observers 文件夹中,但正如我所说,上面的更直观。

您可以将它们存储在任何您想要的地方。 Laravel 不会为您的应用程序的独特逻辑强加目录结构。

不会 将它们存储在 app/Events 目录中,因为它们用于事件 类.更合适的位置可能是 app/Observers,或者如果您想保留对 Laravel 4.

我将它们定义在同一个模型 class 文件中,因为同一个观察者不会被不同的模型加载(大多数情况下)。

虽然如果您的观察者被不同的模型共享,那么请在 app 文件夹中创建一个单独的文件夹,并将其添加到 composer autoload 并在那里定义观察者 classes。