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

时间:2015-03-14 04:36:05

标签: php laravel laravel-5

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

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

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

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

3 个答案:

答案 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并在那里定义观察者类。