按设计上的思路梳理一下:

1.最终是要告诉系统,需要绑定某个句柄到某个事件

这通常发生在控制器里,但如果遇到一些需要全局范围内处理的事件,可以放在整个PHP环境的最上层。

2.实现那个句柄

通常没有这个句柄的实现,得靠开发者自己动手。

3.在事件发生点创建事件。

就是发生事情,该raiseEvent了(通常可以直接调用onXXX来间接调用raiseEvent)。

4.实现那个事件,如果没有的话

Yii已经内建了很多事件,但有特殊需求的事件需要开发者自己定义。