YII框架实现自定义第三方扩展操作示例
程序员文章站
2022-08-29 23:10:40
本文实例讲述了yii框架实现自定义第三方扩展操作。分享给大家供大家参考,具体如下:
cat.php
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于yii框架的php程序设计有所帮助。