behaviors

yii2

为君一笑 提交于 2019-11-28 19:20:27
Behavior 的简述 行为简单来说是组件的扩展,可以对组件的 属性 , 方法 , 事件 (yii2组件的三大要点) 进行扩展而无需改动组件现有的代码逻辑。即此行为所拥有的属性,方法,事件,都会被绑定它的组件 "获取" 到。所以 yii2 的行为在一定程度上也是对 Event 的封装,你可以在行为里定义需要扩展的属性,方法,也可以注册事件,让组件可以做到绑定此行为,即注册了某事件的功能。 我们知道,框架在执行过程中有很多系统级别执行节点,在这些节点 yii2 使用 Event 来进实现行钩子机制。比如我们调用一个 Action 有 beforeAction 和 afterAction 的执行节点,调用 Model 的 validate 方法有 beforeValidate 和 afterValidate 的执行节点,执行到相应的节点便会触发相应的事件,事件去检查有无注册的钩子,有的话即会触发。而行为则可以为某组件方便的实现此功能。 yii\base\Model 中的 validate 方法的前后执行节点 我如果在某行为中注册了model的这两个事件,那么任何继承至 yii\base\Model的组件只要绑定了此行为,都会被注册这两个事件。 yii\base\Behavior 基类 yii\base\Behavior::$owner //行为所有者 肯定是某组件对象 yii