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 相关文章推荐
在mysql数据库原有字段后增加新内容
Nov 26 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
php反射学习之依赖注入示例
Jun 14 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
使用Django清空数据库并重新生成
2020/04/03 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
中学运动会广播稿
2014/01/19 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
多媒体教室标语
2014/06/26 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL