PHP的Yii框架中移除组件所绑定的行为的方法


Posted in PHP onMarch 18, 2016

要移除行为,可以调用 yii\base\Component::detachBehavior() 方法用行为相关联的名字实现:

$component->detachBehavior('myBehavior1');

也可以移除全部行为:

$component->detachBehaviors();

这上面两种方法,都会调用到 yii\base\Behavior::detach() ,其代码如下:

public function detach()
{
  // 这得是个名花有主的行为才有解除一说
  if ($this->owner) {

    // 遍历行为定义的事件,一一解除
    foreach ($this->events() as $event => $handler) {
      $this->owner->off($event, is_string($handler) ? [$this,
        $handler] : $handler);
    }
    $this->owner = null;
  }
}

与 yii\base\Behavior::attach() 相反,解除的过程就是干两件事: 一是将 $owner 设置为 null ,表示这个行为没有依附到任何类上。 二是通过Component的 off() 将绑定到类上的事件hanlder解除下来。一句话,善始善终。

PHP 相关文章推荐
PHP动态变静态原理
Nov 25 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
PHP概率计算函数汇总
Sep 13 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 #PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 #PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 #PHP
Symfony2函数用法实例分析
Mar 18 #PHP
Symfony2联合查询实现方法
Mar 18 #PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 #PHP
Symfony2创建页面实例详解
Mar 18 #PHP
You might like
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
python进阶教程之循环对象
2014/08/30 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
python模拟Django框架实例
2016/05/17 Python
python re模块findall()函数实例解析
2018/01/19 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
使用Python处理BAM的方法
2018/09/28 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
《这儿真好》教学反思
2014/02/22 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
小学数学课后反思
2014/04/23 职场文书
2014年导购员工作总结
2014/11/18 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
python如何正确使用yield
2021/05/21 Python