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

 更新时间:2016年03月18日 15:20:00   投稿:goldensun  
这篇文章主要介绍了PHP的Yii框架中移除组件所绑定的行为的方法,可以用detachBehavio方法或者移除全部行为,需要的朋友可以参考下

要移除行为,可以调用 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开发入门教程之面向对象

    PHP开发入门教程之面向对象...
    2006-12-12
  • php之CodeIgniter学习笔记

    php之CodeIgniter学习笔记

    本篇文章是对php中的CodeIgniter进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • CentOS系统中PHP安装扩展的方式汇总

    CentOS系统中PHP安装扩展的方式汇总

    本文给大家汇总介绍了CentOS系统中PHP安装拓展的方式,主要有 包管理式 的 yum 安装、pecl 安装,以及 源码编译安装。总结的非常全面,推荐给大家。
    2017-04-04
  • php7和php5具体区别实例讲解

    php7和php5具体区别实例讲解

    这篇文章主要介绍了php7和php5具体区别实例讲解,代码对比的很清楚,对此不太清楚的同学可以多研究下
    2021-01-01
  • PHP内核探索:变量概述

    PHP内核探索:变量概述

    这篇文章主要介绍了PHP 变量的相关资料,需要的朋友可以参考下
    2014-01-01
  • PHP实现二维数组按指定的键名排序的方法示例

    PHP实现二维数组按指定的键名排序的方法示例

    这篇文章主要介绍了PHP实现二维数组按指定的键名排序的方法,这里以数组记录三个人信息中的年龄age字段值进行排序为例,分析了php二维数组排序的操作技巧,需要的朋友可以参考下
    2017-08-08
  • phpstudy的安装及ThinkPHP框架的搭建图文讲解

    phpstudy的安装及ThinkPHP框架的搭建图文讲解

    这篇文章主要介绍了phpstudy的安装及ThinkPHP框架的搭建图文讲解,步骤描述的很清楚,有不会使用phpstudy或者ThinkPHP框架搭建的同学可以深入研究下
    2021-01-01
  • php添加文章时生成静态HTML文章的实现代码

    php添加文章时生成静态HTML文章的实现代码

    PHP生成静态文章HTML,有批量的生成,但比较标准的应该是在添加文章时就生成HTML文章,编辑时再重新生成HTML文章,删除文章时同样也样删除多余出来的HTML文章,这时批量生成就显得有点力不从心了,下面就介绍一下PHP在添加文章时如何生成静态的HTML文件
    2013-02-02
  • PHP获取表单textarea数据中的换行问题

    PHP获取表单textarea数据中的换行问题

    闲来无事,在网上看到一篇关于php表单转换textarea换行符的文章,看完后,根据以往经验,感觉上这篇文章中的一些信息并不准确...于是便自己亲自对php获取表单数据中的换行符问题进行研究
    2010-09-09
  • PHP中闭包函数的使用详细讲解

    PHP中闭包函数的使用详细讲解

    闭包是一种特殊的函数,可以在函数内部创建一个独立的作用域,以保护变量不受外部环境的影响,下面主要为大家介绍一下PHP中闭包函数的使用,有需要的可以了解下
    2023-11-11

最新评论