YII自定义第三方扩展
2016-05-26 09:50
369 查看
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 扒一扒这些题目都考了哪些知识点
- YII服务定位器依赖注入
- YII容器类依赖注入
- YII类的映射表机制
- YII页面缓存
- php 数组 常用函数
- 如何修改php内存限制
- 每天laravel-20160815| Container -18
- 每天laravel-20160815| Container -18
- PHP新的垃圾回收机制:Zend GC详解
- 基于PHP实现数据分页显示功能
- PHP高手干货分享:不能不看的50个细节!
- Windows下搭建PHP开发环境
- PHP使用curl替代file_get_contents
- PHP语言的RSA算法加解密程序
- php array_filter过滤数组为空值
- php preg_match_all函数笔记
- php urlencode()与urldecode()函数字符编码原理-笔记