duanmianxue2687 2017-10-25 11:04
浏览 27

laravel function vs event仅供所有者使用的代码

I am currently deciding if I should use events:

No events:

function receiveOrder($order) {
   // ... do stuff
   orderReceived($order);
}

function orderReceived($order) {
   doSomeProcessing($order)
   sendEmail($order)
}

function doSomeProcessing($order) {
}

function sendEmail($order) {
}

Events (this is no actual code, just the semantic structure)

function receiveOrder($order) {
   // ... do stuff
   event.emit('orderreceived', $order);
}

event.listen('orderreceived', doSomeProcessing);
event.listen('orderreceived', sendEmail);

function doSomeProcessing($order) {
}

function sendEmail($order) {
}

What is the advantage of using the events. I know that it is better if I want flexibility for others to use my package. This way they can hook into the receiveOrder function without modifying it. But assuming that I do not want to provide the code as a package (which is probably the case for most laravel projects). Why should I use events?

EDIT:

The reason why I don't like events is that it ruins the autocompletion and class resolution of IDEs and it is also much harder to debug/find side effects.

  • 写回答

1条回答 默认 最新

  • dsxxqndv41105 2017-10-25 11:27
    关注

    you are right,

    Without Events, Lots of Logic in One Place

    Events allows you to separate application concerns and creates a mechanism to hook into actions in the application

    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP