【问题标题】:Where to Store Model Observers (Events) in Laravel 5Laravel 5 中模型观察者(事件)的存储位置
【发布时间】:2015-03-14 04:36:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我将它们定义在同一个模型类中作为子类,因为同一个观察者不会被不同的模型加载。

标签: php laravel laravel-5


【解决方案1】:

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

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

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

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    我在同一个模型类文件中定义它们,因为同一个观察者不会被不同的模型加载(大部分时间)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多