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面向对象全攻略 (七) 继承性
Sep 30 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
PHP面向对象教程之自定义类
Jun 10 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
php取得字符串首字母的方法
Mar 25 PHP
WordPress网站性能优化指南
Nov 18 PHP
PHP错误机制知识汇总
Mar 24 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
php面向对象程序设计入门教程
Jun 22 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学习 字符串课件
2008/06/15 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
js简单时间比较的方法
2016/08/02 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
环保倡议书400字
2014/05/15 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
2015年教研工作总结
2015/05/23 职场文书
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python