当前位置:首页 > php技术文章 > PHP的Yii框架中移除组件所绑定的行为的方法

PHP的Yii框架中移除组件所绑定的例子分享

  • 发布时间:
  • 作者:码农之家原创
  • 点击:156

这篇文章主要知识点是关于PHP、Yii、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

高性能PHP7
高性能PHP7全书扫描版
  • 类型:PHP7大小:11.3 MB格式:PDF作者:Altaf
立即下载

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

要移除行为,可以调用 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解除下来。一句话,善始善终。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

idea2020注册激活码(激活到2100年)

实例分析Java实现的zip压缩及解压缩工具类

python3 pandas 如何读取MySQL数据和插入

ThinkPHP3.2.3框架如何实现分页功能

深入理解JS函数stack size计算方法

展开 +

收起 -

PHP 相关电子书
学习笔记
网友NO.212616

深入解析PHP的Yii框架中的event事件机制

事件 事件可以将自定义代码“注入”到现有代码中的特定执行点。附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行。例如,邮件程序对象成功发出消息时可触发 messageSent 事件。如想追踪成功发送的消息,可以附加相应追踪代码到messageSent 事件。 Yii 引入了名为 yii\base\Component 的基类以支持事件。如果一个类需要触发事件就应该继承 yii\base\Component 或其子类。 Yii的event机制 YII的事件机制,是其比较独特之处,合理使用好事件机制,会使各个组件之间的耦合更为松散,利于团体协作开发。 何时需要使用事件,如何给事件绑定事件处理函数,以及如何触发事件,与其它语言是有较大的差别的。例如Javascript中,可以使用 $(‘#id').on("click",function() {}); 方式给DOM元素绑定处理函数,当DOM元素上发生指定的事件(如click)时,将自动执行……

网友NO.131363

Yii框架中使用PHPExcel的方法分析

本文实例分析了Yii框架中使用PHPExcel的方法。分享给大家供大家参考,具体如下: PHPExcel是一个比较好用的php读取excel文件的类库,今天遇到了在yii中如何加载PHPExcel类文件的问题,因为Yii的autoload机制是安装类名去找文件,即文件名就是相应的类名,而PHPExcel的类文件命名方式则是:dir_dir_classname.php,即文件名把文件的目录名都记录了,这种命名方式yii肯定识别不了。怎么办? 其实PHPExcel也有自己的autoload方法( PHPExcel_Autoloader::load() ),通过查看源码发现它也是通过 spl_autoload_register 函数注册的(在 PHPExcel_Autoloader::register() 中),而我们知道PHP的autoload机制是,所有用 spl_autoload_register 函数注册的方法,都会在autoload时被 spl_autoload_call 函数执行一遍,因此我们只需要让PHPExcel的autoload方法顺利注册上就行了。 如果了解Yii的autoload机制,不清楚的可以看 附……

网友NO.924765

详解PHP的Yii框架中扩展的安装与使用

扩展是专门设计的在 Yii 应用中随时可拿来使用的, 并可重发布的软件包。例如, yiisoft/yii2-debug 扩展在你的应用的每个页面底部添加一个方便用于调试的工具栏, 帮助你简单地抓取页面生成的情况。 你可以使用扩展来加速你的开发过程。 信息:本文中我们使用的术语 "扩展" 特指 Yii 软件包。而用术语 "软件包" 和 "库" 指代非 Yii 专用的通常意义上的软件包。 使用扩展 要使用扩展,你要先安装它。大多数扩展以 Composer 软件包的形式发布, 这样的扩展可采取下述两个步骤来安装: 修改你的应用的 composer.json 文件,指明你要安装的是哪个扩展 (Composer 软件包)。 运行 composer install 来安装指定的扩展。 注意如果你还没有安装 Composer ,你需要先安装。 默认情况,Composer安装的是在 Packagist 中 注册的软件包 - 最大的开源 Composer 代码库。你可以在 Packagei……

网友NO.691154

yii框架redis结合php实现秒杀效果(实例代码)

废话不多说了,直接给大家贴代码了,具体代码如下所示: ?phpnamespace backend\controllers;use Yii;use yii\web\Controller;/*** */class GoodsController extends Controller{public $enableCsrfValidation=false;public function actionInfo(){$data=yii::$app-db-createCommand("select * from goods ")-queryAll();return $this-render('index',['data'=$data]);}Public function actionXx(){$id=yii::$app-request-get('id');$data=yii::$app-db-createCommand("select * from goods where id='$id'")-queryOne();return $this-render('info',['data'=$data]);}Public function actionAdd(){$a=yii::$app-redis;if (Yii::$app-request-isPost){$data=yii::$app-request-post();$res=yii::$app-db-createCommand()-insert('goods',$data)-execute();if($res){for ($i=0; $i $data['counts'] ; $i++){ $a-lpush('goods',1);}return $this-redirect(array('goods/info'));}else{echo "添加失败";}}else{return $this-render('add');}}public function actionOrder(){$redis=yii::$app-redis;$count=$redis-lpop('goods');if(empty($count))……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757