本文實例講述了YII框架實現(xià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/** * 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 調(diào)用第三方類庫
<?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']);//取消關(guān)注 //類級別的事件綁定// Event::on(Cat::className(),'miao',[$mouse,'run']);//所有的老鼠都會監(jiān)聽這個miao事件// Event::on(Cat::className(),'miao',function(){// echo "miao event has triggerd!<br>";// }); $cat->shout(); ///Yii::$app是YII實現(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()//對象的混合 { $dog = new Dog(); $behavior1 = new Behavior1(); $dog->attachBehavior('beh1',$behavior1);//取個別名,防止沖突 //$dog->detachBehavior('beh1');//移除對象 $dog->eat(); }}
希望本文所述對大家基于Yii框架的PHP程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選