PSR 14 事件分发 - 说明文档 「起草中」
1. 概要
这份文档的主要目的是描述事件分发 PSR 背后的动机和逻辑
2. 何必
大量的库、组件和框架都有一种持久的固定的模式可以和任意第三方代码进行交互
其中的大多数采用的是经典的观察者模式的变体,通常是通过对象或服务来调节,其它的则采用面向切面 ( AOP ) 的编程方法
不管怎样,它们都具有相同的基本思路:在固定点上中断程序流程,向任意第三方库提供有关正在执行的操作的信息,并允许它们响应或影响程序行为
这是一个行之有效的模式,如果库的开发者和扩展者都遵循这种标准的机制,他们创建的越来越多的第三方库,也只需要很少的变动就能完成相互交互
3. 逻辑
3.1 特性
-
简化和标准化组件和库 「曝出」自己的过程,这样它们就可以更加容易的添加到任意应用程序和框架中
-
简化和标准化组件和库订阅感兴趣事件的过程,这样它们就可以更加容易的添加到任意应用程序和框架中
-
在可行的范围内,尽量简化现有代码向此规范过度的过程
3.2 非特性
- 异步系统通常有一个 「事件循环」 的概念来管理创建的协程,这是一个无关紧要的问题,与本规范明确无关
异步系统通常有一个“事件循环”的概念来管理交织协程。这是一个无关紧要的问题,与本规范明确无关
- 实现了 「事件源」模式的存储系统虽然也具有「事件」的样子, 但与这里讨论的事件无关,很明显,超出了范围
实施“事件源”模式的存储系统也具有“事件”的概念。这与这里讨论的事件无关,并且明确超出了范围
-
不要期待会严格向后兼容已经存在的事件系统,这不是优先考虑的事情
-
即使这个规范会给出实现的方法,但并不会真去定义一个完整的事件调度程序,而是规范调用者和监听者如何与调度程序进行交互
4. 提议
5. 参与人员
事件分发 工作组包括:
5.1 撰稿者
- Larry Garfield
5.2 发起人
Cees-Jan Kiewiet
工作组成员
Benjamin Mack Elizabeth Smith Ryan Weaver Matthew Weier O'Phinney
6. 表决人
- Entrance Vote: ADD LINK HERE