包中的Laravel事件监听器,放在哪里?

时间:2015-07-19 14:08:44

标签: php email events laravel-4

我正在编写一个相对简单的Laravel 4.2软件包,用于邮件编写/发送。该组件应该在主应用程序(或其他组件)中侦听用户定义的事件,并在事件触发时发送。

我已经创建了多语言邮件编辑和事件关联,但现在我不知道在哪里正确放置和设置我的“foreach”事件循环以在组件中创建实际的侦听器。

任何人都可以帮助我?

为了更好地解释我想在组件中做什么:

  • 允许管理员从后端编写电子邮件模板
  • 将每封电子邮件(或邮件集)与指定的事件相关联(例如'user.create')
  • 在应用程序执行时,组件遍历已保存的事件并注册实际的侦听器
  • 如果在执行期间主应用程序或其他组件触发事件,则邮件组件会通过发送相应的电子邮件作出反应。

亲切的问候, 费德里科

1 个答案:

答案 0 :(得分:1)

好的,我花了一些测试来找到我认为是我所指的Event :: listen()循环的正确位置。

我知道我可以将侦听器添加到我想要的地方,但是对于一个组件我没有任何线索。最后,我决定在ServiceProvider的boot()方法中构建它。

现在我的组件ServiceProvider执行以下操作:

  • 收集要从数据库收听的事件;
  • 为每个找到的行分配一个监听器;
  • 运行一个闭包函数,以防主应用程序触发相关事件。

Laravel足够简单!