当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-20 11:20:24 浏览: 评论:0 

这篇文章主要介绍了YII框架实现自定义第三方扩展操作,结合实例形式分析了Yii框架自定义第三方扩展操作的步骤与相关实现技巧,需要的朋友可以参考下。

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

cat.php

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 15:23 
  6.  */ 
  7. namespace vendor\animal; 
  8. use \yii\base\Component;//组件 
  9. use \yii\base\Event;// 
  10. class myEvent extends Event{ 
  11.   public $message
  12. class Cat extends Component{ 
  13.   public function shout(){ 
  14.     echo "miao miao miao<br>"
  15.     //$this->trigger('miao');//事件命名 
  16.     $me = new myEvent(); 
  17.     $me->message = "hello my Event<br>"
  18.     $this->trigger('miao',$me); 
  19.   } 

Dog.php

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 17:00 
  6.  */ 
  7. namespace vendor\animal; 
  8. use frontend\behaviors\behavior1; 
  9. use yii\base\Component;//让一个类拥有接收行为的能力 
  10. class Dog extends Component{ 
  11.   public function behaviors(){ 
  12.     return [ 
  13.       Behavior1::className(), 
  14.     ]; 
  15.   } 
  16.   public function look() 
  17.   { 
  18.     echo "I am looking!<br>"
  19.   } 

Mouse.php

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 15:23 
  6.  */ 
  7. namespace vendor\animal; 
  8. class Mouse{ 
  9.   public function run($e
  10.   { 
  11.     echo $e->message; 
  12.     echo "I am running!<br>"
  13.   } 

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

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 15:27 
  6.  */ 
  7. //YII事件绑定 
  8. namespace frontend\controllers; 
  9. use yii; 
  10. use yii\web\Controller; 
  11. use vendor\animal\Cat; 
  12. use vendor\animal\Mouse; 
  13. use vendor\animal\Dog; 
  14. use \yii\base\Event;//类级别的事件绑定必须 
  15. use frontend\behaviors\Behavior1;//对象的混合 
  16. class AnimalController extends Controller{ 
  17.   public function actionIndex(){ 
  18.     $cat = new Cat(); 
  19.     $mouse = new Mouse(); 
  20.     $dog = new Dog(); 
  21.     //对象级别的事件绑定 
  22.     $cat->on('miao',[$mouse,'run']); 
  23.     $cat->on('miao',[$dog,'look']); 
  24. // 
  25. //    $cat->off('miao',[$dog,'look']);//取消关注 
  26.     //类级别的事件绑定 
  27. //    Event::on(Cat::className(),'miao',[$mouse,'run']);//所有的老鼠都会监听这个miao事件 
  28. //    Event::on(Cat::className(),'miao',function(){ 
  29. //      echo "miao event has triggerd!<br>"; 
  30. //    }); 
  31.     $cat->shout(); 
  32.     //\Yii::$app是YII实现的单例模式 
  33. //    Yii::$app->on(\yii\base\Application::EVENT_AFTER_REQUEST,function(){ 
  34. //      echo "event after request"; 
  35. //    }); 
  36.   } 
  37.   public function actionBehavior()//类的混合 
  38.   { 
  39.     /*板块1 
  40.      * $dog = new Dog(); 
  41.     $dog->look(); 
  42.     $dog->eat();*/ 
  43.     $dog=new Dog(); 
  44.     $dog->trigger("wang"); 
  45.   } 
  46.   public function actionObject()//对象的混合 
  47.   { 
  48.     $dog = new Dog(); 
  49.     $behavior1 = new Behavior1(); 
  50.     $dog->attachBehavior('beh1',$behavior1);//取个别名,防止冲突 
  51.     //$dog->detachBehavior('beh1');//移除对象 
  52.     $dog->eat(); 
  53.   } 
  54. }

Tags: YII 第三方扩展

分享到: