PHP事件机制
先用 3W1H(who what why how) 分析法的思路来解释一下 事件机制 。 更重要的是, 这个有什么用? 正常 的程序执行, 或者说人的思维趋势, 都是按照 时间线性串行 的, 保持 连续性 . 不过现实中会存在各种 打断 , 程序也不是永远都是 就绪状态 , 那么, 就需要有一种机制, 来处理可能出现的各种打断, 或者在程序不同状态之间切换。 事件机制发展到现在, 有时候也算是一种预留手段, 根据你的经验在需要的地方 埋点 , 方便之后 打补丁。 swoft 的事件机制基于 PSR-14 实现, 高度内聚简洁。 由三部分组成: EventManager: 事件管理器 Event: 事件 EventHandler / Listener: 事件处理器/监听器 执行流程: 先生成 EventManager 将 Event 和 EventHandler 注册到 EventManager 触发 Event, EventManager 就会调用相应的 EventHandler 使用起来就更加简单了: namespace SwoftEvent; class ListenerQueue implements IteratorAggregate, Countable { protected $store; /** * 优先级队列 * @var SplPriorityQueue */