第一次尝试Laravel事件和观察员。
http://laravel.com/docs/5.0/eloquent#model-observers
我在一些关于Laravel 4的旧帖子中看到,存放它们的好地方就在app/models/observers
。但是在Laravel 5中,由于文件夹结构发生了一些变化,我想知道哪里有一个存放它们的好地方?
我应该将它们存储在Events
文件夹中吗?
答案 0 :(得分:3)
这是其中一个可能有错误答案但有多个正确答案的问题。我建议我们重新访问基础知识。
我相信网络应用的文件夹结构应该是直观的。第一次看代码的人应该很快就能理解在哪里找到代码。所以,这就是我的建议。
由于Laravel 5在app
文件夹中包含模型,因此您可以将它们命名为Models
文件夹。然后,您的型号代码将位于app/Models
。同样,您可以将模型观察者保持在app/Models/Observers
并相应地命名它们。
您也可以将它们保存在Events
文件夹或Observers
文件夹中的单独app
文件夹中,但正如我所说,以上内容更为直观。
答案 1 :(得分:1)
您可以将它们存储在任何您想要的位置。 Laravel没有为应用程序的唯一逻辑强加目录结构。
我不会将它们存储在 app / Events 目录中,因为它们适用于事件类。如果您想保留Laravel 4的一些熟悉程度,更合适的位置可能类似于 app / Observers 或 app / Model / Observers 。
答案 2 :(得分:0)
我在同一个模型类文件中定义它们,因为不同的模型不会加载相同的观察者(大多数时候)。
虽然如果您的观察者被不同的模型共享,那么在app文件夹中创建一个单独的文件夹,并将其添加到composer autoload并在那里定义观察者类。