只是第一次尝试Laravel事件和观察者。
http://laravel.com/docs/5.0/eloquent#model-observers
我在一些关于 Laravel 4 的旧帖子中看到一个存放它们的好地方就在 app/models/observers
.但是在 Laravel 5 中,由于文件夹结构发生了一些变化,我想知道哪里是存储它们的好地方?
我应该将它们存储在Events
文件夹中吗?
这是可能有一个错误答案但有多个正确答案的问题之一。我建议我们重新审视一下基础知识。
我相信 Web 应用程序的文件夹结构应该是直观的。第一次查看代码的人应该很快明白在哪里找到什么。所以,这是我的建议。
由于 Laravel 5 在 app
文件夹中有模型,因此您可以将它们命名为Models
文件夹。然后,您的模型代码将存放在 app/Models
.同样,您可以将模型观察者保持在app/Models/Observers
,并相应地为它们命名空间。
您也可以将它们保存在Events
文件夹中或app
文件夹中的单独Observers
文件夹中,但正如我所说,以上内容更直观。
您可以将它们存储在所需的任何位置。Laravel不会为应用程序的独特逻辑强加目录结构。
不过,我不会将它们存储在应用程序/事件目录中,因为它们用于事件类。更合适的位置可能是应用程序/观察者,或者应用程序/模型/观察者,如果你想保持对 Laravel 4 的一些熟悉。
我在同一个模型类文件中定义它们,因为不同的模型不会加载同一个观察器(大多数时候)。
虽然如果你的观察器被不同的模型共享,那么一定要在应用程序文件夹中创建一个单独的文件夹,并将其添加到作曲家自动加载中,并在那里定义观察器类。