zoukankan      html  css  js  c++  java
  • YII自定义第三方扩展

    cat.php

    <?php
    /**
     * Created by PhpStorm.
     * Date: 2016/5/25
     * Time: 15:23
     */
    namespace vendoranimal;
    
    use yiiaseComponent;//组件
    use yiiaseEvent;//
    
    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 vendoranimal;
    
    use frontendehaviorsehavior1;
    use yiiaseComponent;//让一个类拥有接收行为的能力
    
    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 vendoranimal;
    
    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 frontendcontrollers;
    
    use yii;
    use yiiwebController;
    use vendoranimalCat;
    use vendoranimalMouse;
    use vendoranimalDog;
    use yiiaseEvent;//类级别的事件绑定必须
    use frontendehaviorsBehavior1;//对象的混合
    
    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(yiiaseApplication::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();
        }
    
    }
  • 相关阅读:
    JSP指令简介(转)
    test markdown
    10个值得前端收藏的CSS3动效库(工具)
    停止不必要的UI动效设计
    UI新手学配色
    改网页鼠标指针、改指定元素指针(2)——小白也能自绘指针
    CSS改网页鼠标指针、改指定元素指针(1)——代码部分
    更高的效率、管理你的文件:Listary!!
    对js操作html的实践【2】——随机标题与滚动标题
    对js操作html的实践【1】——实现网页假崩溃吸引网友注意力
  • 原文地址:https://www.cnblogs.com/isuben/p/5529918.html
Copyright © 2011-2022 走看看