您好,登錄后才能下訂單哦!
如何在YII框架中自定義第三方擴(kuò)展?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
具體如下:
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 namespace vendor\animal; use frontend\behaviors\behavior1; use yii\base\Component;//讓一個(gè)類(lèi)擁有接收行為的能力 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)用第三方類(lèi)庫(kù)
<?php //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;//類(lèi)級(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)注 //類(lèi)級(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()//類(lèi)的混合 { /*板塊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('beh2',$behavior1);//取個(gè)別名,防止沖突 //$dog->detachBehavior('beh2');//移除對(duì)象 $dog->eat(); } }
看完上述內(nèi)容,你們掌握如何在YII框架中自定義第三方擴(kuò)展的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。