YII框架實(shí)現(xiàn)自定義第三方擴(kuò)展操作示例
本文實(shí)例講述了YII框架實(shí)現(xiàn)自定義第三方擴(kuò)展操作。分享給大家供大家參考,具體如下:
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;//讓一個(gè)類擁有接收行為的能力 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 調(diào)用第三方類庫(kù)
<?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;//類級(jí)別的事件綁定必須 use frontend\behaviors\Behavior1;//對(duì)象的混合 class AnimalController extends Controller{ public function actionIndex(){ $cat = new Cat(); $mouse = new Mouse(); $dog = new Dog(); //對(duì)象級(jí)別的事件綁定 $cat->on('miao',[$mouse,'run']); $cat->on('miao',[$dog,'look']); // // $cat->off('miao',[$dog,'look']);//取消關(guān)注 //類級(jí)別的事件綁定 // Event::on(Cat::className(),'miao',[$mouse,'run']);//所有的老鼠都會(huì)監(jiān)聽(tīng)這個(gè)miao事件 // Event::on(Cat::className(),'miao',function(){ // echo "miao event has triggerd!<br>"; // }); $cat->shout(); //\Yii::$app是YII實(shí)現(xiàn)的單例模式 // 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()//對(duì)象的混合 { $dog = new Dog(); $behavior1 = new Behavior1(); $dog->attachBehavior('beh1',$behavior1);//取個(gè)別名,防止沖突 //$dog->detachBehavior('beh1');//移除對(duì)象 $dog->eat(); } }
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。
- YII2框架中使用RBAC對(duì)模塊,控制器,方法的權(quán)限控制及規(guī)則的使用示例
- YII框架模塊化處理操作示例
- YII分模塊加載路由的實(shí)現(xiàn)方法
- Yii中srbac權(quán)限擴(kuò)展模塊工作原理與用法分析
- YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法
- YII2框架中自定義用戶認(rèn)證模型,完成登陸和注冊(cè)操作示例
- YII2框架自定義全局函數(shù)的實(shí)現(xiàn)方法小結(jié)
- Yii2框架自定義驗(yàn)證規(guī)則操作示例
- Yii2實(shí)現(xiàn)自定義獨(dú)立驗(yàn)證器的方法
- 深入淺析yii2-gii自定義模板的方法
- YII2框架中添加自定義模塊的方法實(shí)例分析
相關(guān)文章
PHP下載遠(yuǎn)程圖片并保存到本地方法總結(jié)
這篇文章主要介紹了PHP下載遠(yuǎn)程圖片并保存到本地方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-01-01laravel-admin利用ModelTree實(shí)現(xiàn)對(duì)分類信息的管理
這篇文章主要介紹了laravel-admin利用ModelTree實(shí)現(xiàn)對(duì)分類信息的管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Laravel框架運(yùn)行出錯(cuò)提示RuntimeException No application encryption ke
這篇文章主要介紹了Laravel框架運(yùn)行出錯(cuò)提示RuntimeException No application encryption key has been specified.解決方法,涉及Laravel框架相關(guān)配置、設(shè)置與運(yùn)行操作技巧,需要的朋友可以參考下2019-04-04PHP實(shí)現(xiàn)的簡(jiǎn)單留言板功能示例【基于thinkPHP框架】
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單留言板功能,結(jié)合實(shí)例形式分析了基于thinkPHP框架實(shí)現(xiàn)的留言板相關(guān)配置、數(shù)據(jù)庫(kù)操作、sql語(yǔ)句等實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12PHP+Ajax異步通訊實(shí)現(xiàn)用戶名郵箱驗(yàn)證是否已注冊(cè)( 2種方法實(shí)現(xiàn))
在網(wǎng)站注冊(cè)用戶時(shí)使用,主要為了無(wú)刷新異步驗(yàn)證用戶輸入的用戶名或者Email是否已注冊(cè)。2011-12-12Thinkphp中的volist標(biāo)簽用法簡(jiǎn)介
通常volist標(biāo)簽多用于查詢數(shù)據(jù)集(select方法)的結(jié)果輸出,通常模型的select方法返回的結(jié)果是一個(gè)二維數(shù)組,對(duì)此可以直接使用volist標(biāo)簽進(jìn)行輸出2014-06-06詳解WordPress開(kāi)發(fā)中過(guò)濾屬性以及Sql語(yǔ)句的函數(shù)使用
這篇文章主要介紹了WordPress開(kāi)發(fā)中過(guò)濾屬性以及Sql語(yǔ)句的函數(shù)使用,分別是對(duì)esc_attr()函數(shù)和esc_sql()函數(shù)的講解,需要的朋友可以參考下2015-12-12