YII框架实现自定义第三方扩展操作示例


Posted in PHP onApril 26, 2019

本文实例讲述了YII框架实现自定义第三方扩展操作。分享给大家供大家参考,具体如下:

YII框架实现自定义第三方扩展操作示例

cat.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 15:23
 */
namespace vendor\animal;
use \yii\base\Component;//组件
use \yii\base\Event;//
class myEvent extends Event{
  public $message;
}
class Cat extends Component{
  public function shout(){
    echo "miao miao miao<br>";
    //$this->trigger('miao');//事件命名
    $me = new myEvent();
    $me->message = "hello my Event<br>";
    $this->trigger('miao',$me);
  }
}

Dog.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 17:00
 */
namespace vendor\animal;
use frontend\behaviors\behavior1;
use yii\base\Component;//让一个类拥有接收行为的能力
class Dog extends Component{
  public function behaviors(){
    return [
      Behavior1::className(),
    ];
  }
  public function look()
  {
    echo "I am looking!<br>";
  }
}

Mouse.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 15:23
 */
namespace vendor\animal;
class Mouse{
  public function run($e)
  {
    echo $e->message;
    echo "I am running!<br>";
  }
}

controllers/AnimalController.php 调用第三方类库

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/25
 * Time: 15:27
 */
//YII事件绑定
namespace frontend\controllers;
use yii;
use yii\web\Controller;
use vendor\animal\Cat;
use vendor\animal\Mouse;
use vendor\animal\Dog;
use \yii\base\Event;//类级别的事件绑定必须
use frontend\behaviors\Behavior1;//对象的混合
class AnimalController extends Controller{
  public function actionIndex(){
    $cat = new Cat();
    $mouse = new Mouse();
    $dog = new Dog();
    //对象级别的事件绑定
    $cat->on('miao',[$mouse,'run']);
    $cat->on('miao',[$dog,'look']);
//
//    $cat->off('miao',[$dog,'look']);//取消关注
    //类级别的事件绑定
//    Event::on(Cat::className(),'miao',[$mouse,'run']);//所有的老鼠都会监听这个miao事件
//    Event::on(Cat::className(),'miao',function(){
//      echo "miao event has triggerd!<br>";
//    });
    $cat->shout();
    //\Yii::$app是YII实现的单例模式
//    Yii::$app->on(\yii\base\Application::EVENT_AFTER_REQUEST,function(){
//      echo "event after request";
//    });
  }
  public function actionBehavior()//类的混合
  {
    /*板块1
     * $dog = new Dog();
    $dog->look();
    $dog->eat();*/
    $dog=new Dog();
    $dog->trigger("wang");
  }
  public function actionObject()//对象的混合
  {
    $dog = new Dog();
    $behavior1 = new Behavior1();
    $dog->attachBehavior('beh1',$behavior1);//取个别名,防止冲突
    //$dog->detachBehavior('beh1');//移除对象
    $dog->eat();
  }
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP6 先修班 JSON实例代码
Aug 23 PHP
PHP 加密与解密的斗争
Apr 17 PHP
php 数组使用详解 推荐
Jun 02 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
php实现aes加密类分享
Feb 16 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
帝国cms目录结构分享
Jul 06 PHP
WordPress中使主题支持小工具以及添加插件启用函数
Dec 22 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
PHP中PCRE正则解析代码详解
Apr 26 #PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 #PHP
PHP实现字符串的全排列详解
Apr 24 #PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 #PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 #PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 #PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
Apr 23 #PHP
You might like
php Memcache 中实现消息队列
2009/11/24 PHP
php intval函数用法总结
2019/04/14 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
js打造数组转json函数
2015/01/14 Javascript
解析js如何获取css样式
2016/12/11 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
想学python 这5本书籍你必看!
2018/12/11 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
用python实现名片管理系统
2020/06/18 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
新闻专业应届生求职信
2013/10/31 职场文书
办公室文员工作职责
2014/01/31 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
员工自我工作评价
2015/03/06 职场文书
借条如何写
2015/05/26 职场文书
python随机打印成绩排名表
2021/06/23 Python