• 技术文章 >php框架 >YII

    yii事件和行为的区别

    (*-*)浩(*-*)浩2019-12-04 11:04:21原创1080
    个人觉得,在 Yii 里面,最难以明白的就是事件(Event)和行为(behavior)了。这不仅仅是因为它们的概念比较难明,关键是它们的应用场景比较难明,不知道什么时候应该使用事件和行为来开发。

    事件

    事件模型就是设计模式中的“观察者模式”:当对象的状态发生了变化,那么这个对象可以将该事件通知其它对象。

    为了使用事件模型,需要实现这三个步骤: (推荐学习:yii框架

    1、定义事件;2、注册事件句柄;3、触发事件。

    为什么要做这三个步骤呢?因为对于 PHP 本身,它的执行过程不是以进程化来运行的,

    所以 Yii 的事件触发机制不会像 ActionScript 3+ 那样,直接将触发事件。

    有人说,Yii 的事件概念跟 js 中的事件概念差不多,因为 Yii 是将事件绑定到 Yii::app() 的执行过程中。

    行为

    这里先重新描述一下为什么要使用行为。

    有两种办法可以对类添加特性:

    1、直接修改这个类的代码,添加一些成员函数和成员变量;

    2、派生,通过子类来扩展。

    很明显第二种方法更加易维护、易扩展。但是如果需要对一个类添加多个特性(多人在不同时期),那么需要进行多级派生,这显然加大了维护成本。

    在 Yii 里面,通过行为类绑定,组件将一个或多个 CBehavior 类的成员方法和成员变量添加到自己身上,并且在不需要的时候载掉某些 CBehavior 类。

    同时,可以通过重写 CBehavior::events 的方法,来实现对目标类的多个事件绑定。这些事件将会在当前行为绑定到目标类的时候,一起被绑定上。

    Yii2事件与行为总结

    1)、事件用于在特定的时点,触发执行预先设定的一段代码,需要使用到事件的类,都继承自 yii\base\Component。

    2)、行为用于对类的补充,通过将行为绑定到一个类,可以使类具有行为本身所定义的属性和方法,就好像类本来就有这些属性和方法一样。

    而且不需要写一个新的类去继承或包含现有类。

    以上就是yii事件和行为的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii
    上一篇:tp5和yii2有什么区别 下一篇:yii怎么设置session
    大前端线上培训班

    相关文章推荐

    • 如何查看yii的版本• yii2怎么安装教程• yii框架如何引用css• yii2判断用户是否已登录

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网