我正在编写一个相对简单的Laravel 4.2包,用于编写/发送邮件。组件应该在主应用程序(或其他组件)中侦听用户定义的事件,并在事件触发时发送。
我已经创建了多语言邮件编辑和事件关联,但现在我不知道在哪里正确地放置和设置我的"foreach"事件循环来创建组件内的实际侦听器。
有人能帮我吗?
为了更好地解释我想在组件中做什么:
- 允许管理员从后端编写电子邮件模板
- 将每个电子邮件(或邮件集)关联到指定的事件(例如:user.create)
- 在应用程序执行时,组件循环遍历保存的事件并注册实际的侦听器
- 如果在执行期间主应用程序或其他组件触发该事件,邮件组件通过发送相应的电子邮件来响应。
亲切的问候,费德里科•
好的,我花了一些测试来找到我认为是我所指的Event::listen()循环的适当位置。
我知道我几乎可以在我想要的地方添加侦听器,但是对于一个组件,我没有线索。最后,我决定在ServiceProvider的boot()方法中构建它。
现在我的组件ServiceProvider做以下操作:
- 从数据库中收集要监听的事件;
- 为每个找到的行分配一个监听器;
- 在主应用程序触发相关事件时运行闭包函数。
使用Laravel很容易!