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 相关文章推荐
用文本文件制作留言板提示(上)
Oct 09 PHP
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
PHP遍历数组的几种方法
Mar 22 PHP
php引用传值实例详解学习
Nov 06 PHP
php检测useragent版本示例
Mar 24 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php异步多线程swoole用法实例
Nov 14 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
小学数学课后反思
2014/04/23 职场文书
激励口号大全
2014/06/17 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
晚会开幕词范文
2016/03/04 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL