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函数)
Oct 09 PHP
php&java(二)
Oct 09 PHP
中篇:安装及配置PHP
Dec 13 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
php三维数组去重(示例代码)
Nov 26 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php_pdo 预处理语句详解
Nov 21 PHP
laravel-admin的多级联动方法
Sep 30 PHP
Yii框架安装简明教程
May 15 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中使用灵巧的体系结构
2006/10/09 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python中常用信号signal类型实例
2018/01/25 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
公积金转移接收函
2014/01/11 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python