欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

YII框架实现自定义第三方扩展操作示例

程序员文章站 2022-08-29 23:10:40
本文实例讲述了yii框架实现自定义第三方扩展操作。分享给大家供大家参考,具体如下: cat.php

本文实例讲述了yii框架实现自定义第三方扩展操作。分享给大家供大家参考,具体如下:

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程序设计有所帮助。