搜索
首页php框架YIIyii2.0怎么绑定事件

yii2.0怎么绑定事件

Feb 17, 2020 pm 02:20 PM
yii事件

yii2.0怎么绑定事件

在yii2中,事件的绑定是通过yii\base\Component的on方法进行操作的,我们在定义事件的同时,需要为其绑定一个回调函数。

看下例子,先写下一个控制器,用on绑定事件,然后在方法里面用triggle调用

namespace backend\controllers;

use yii\web\Controller;

class EventController extends Controller
{
   const TEST_EVENT = 'event';

    public function init()
    {
        parent::init();
        $this->on(self::TEST_EVENT,function(){echo '这个一个事件测试。。。';});
    }


    public function actionIndex()
    {
        $this->trigger(self::TEST_EVENT);
    }
}

访问index方法后得到事件的结果。在进入控制器的时候就给‘event’绑定了一个时间,on第一个参数表示事件名(必须是常量),第二个参数是这个事件的回调函数。

(推荐教程:yii框架

也可以写成如下的方式:

namespace backend\controllers;

use yii\web\Controller;

class EventController extends Controller
{
   const TEST_EVENT = 'event';

    public function init()
    {
        parent::init();
        $this->on(self::TEST_EVENT,[$this,'onTest']);
    }


    public function onTest()
    {
        echo '这个一个事件测试。。。';
    }

    public function actionIndex()
    {
        $this->trigger(self::TEST_EVENT);
    }
}

$this表示的是本对象,‘onTest’指的是执行的方法。事件绑定好后没有调用还是没用,此时用到yii\base\Compontent类中的triggle方法来调用了。

事件的扩展运用(参数的传入方法)

先定义一个控制器在里面定义加调用,如果想要传入不同的参数就要用到 yii\base\Event 类了

class EventController extends Controller
{
    const TEST_USER = 'email'; //发送邮件
    public function init()
    {
        parent::init();
        $msg = new Msg();
        $this->on(self::TEST_USER,[$msg,'Ontest'],'参数Test');  
    }
    public function actionTest()
    {
        $msgEvent = new MsgEvent();
        $msgEvent->dateTime = 'Test时间';
        $msgEvent->author = 'Test作者';
        $msgEvent->content = 'Test内容';
        $this->trigger(self::TEST_USER,$msgEvent);
    }
}
class MsgEvent extends Event
{
    public $dateTime;   // 时间
    public $author;     // 作者
    public $content;    // 内容

}

msg里面放的是调用的方法

class Msg extends ActiveRecord
{
    public function onTest($event) //$event是yii\base\Event的对象
    {
        print_r($event->author);//输出'Test作者'
        print_r($event->dateTime);//输出'Test时间'
        print_r($event->content);//输出'Test内容'
        print_r($event->data);//输出'参数Test'

    }
}

更多编程相关内容学习,请访问php中文网编程教程栏目!

以上是yii2.0怎么绑定事件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
行动中的YII:当前的应用程序和项目行动中的YII:当前的应用程序和项目Apr 24, 2025 am 12:03 AM

Yii框架适用于企业级应用、中小型项目和个人项目。1)在企业级应用中,Yii的高性能和可扩展性使其在电商平台等大型项目中表现出色。2)中小型项目中,Yii的Gii工具帮助快速搭建原型和MVP。3)个人项目和开源项目中,Yii的轻量级特性使其适合小型网站和博客。

使用YII:创建强大而可扩展的Web解决方案使用YII:创建强大而可扩展的Web解决方案Apr 23, 2025 am 12:16 AM

Yii框架适合构建高效、安全和可扩展的Web应用。1)Yii基于MVC架构,提供组件化设计和安全特性。2)它支持基本CRUD操作和高级RESTfulAPI开发。3)提供日志记录和调试工具栏等调试技巧。4)建议使用缓存和延迟加载进行性能优化。

YII的目的:快速有效地构建Web应用程序YII的目的:快速有效地构建Web应用程序Apr 22, 2025 am 12:07 AM

Yii的目的是让开发者快速、高效地构建Web应用。其实现通过以下方式:1)组件化设计和MVC架构提高代码可维护性和可重用性;2)Gii工具自动生成代码,提升开发速度;3)延迟加载和缓存机制优化性能;4)灵活的扩展性便于集成第三方库;5)提供RBAC功能处理复杂业务逻辑。

YII的多功能性:从简单站点到复杂的项目YII的多功能性:从简单站点到复杂的项目Apr 21, 2025 am 12:08 AM

1)简单站点,yiioOfferSeaseAseaseAseaseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAseAssetUpandRapidDevelopment.2)forcomplexprojects,ItmodularityAndrbacSystemManagesManagesManageSmanageScalagionsalageScalabilityscalability calability andsecurity andsecurity andsecurity。

yii和PHP框架的未来yii和PHP框架的未来Apr 20, 2025 am 12:11 AM

Yii框架在未来PHP框架发展中将继续扮演重要角色。1)Yii提供高效的MVC架构、强大的ORM系统、内置缓存机制和丰富扩展库。2)其组件化设计和灵活性使其适用于复杂业务逻辑和RESTfulAPI开发。3)Yii不断更新以适应现代PHP特性和技术趋势,如微服务和容器化。

YII行动:现实世界中的示例和应用程序YII行动:现实世界中的示例和应用程序Apr 19, 2025 am 12:03 AM

Yii框架适合开发各种规模的Web应用,其优势在于高性能和丰富的功能集。1)Yii采用MVC架构,核心组件包括ActiveRecord、Widget和Gii工具。2)通过请求处理流程,Yii高效处理HTTP请求。3)基本用法展示了创建控制器和视图的简单示例。4)高级用法通过ActiveRecord展示了数据库操作的灵活性。5)调试技巧包括使用调试工具栏和日志系统。6)性能优化建议使用缓存和数据库查询优化,遵循编码规范和依赖注入以提高代码质量。

yii2怎么显示错误提示yii2怎么显示错误提示Apr 18, 2025 pm 11:09 PM

在 Yii2 中,显示错误提示有两种主要方法。一种是使用 Yii::$app->errorHandler->exception(),在异常发生时自动捕获和显示错误。另一种是使用 $this->addError(),在模型验证失败时显示错误,并可以在视图中通过 $model->getErrors() 访问。视图中,可以用 if ($errors = $model->getErrors())

yi2和tp5区别有哪些yi2和tp5区别有哪些Apr 18, 2025 pm 11:06 PM

随着PHP框架技术的不断发展,Yi2和TP5作为两大主流框架备受关注。它们都以出色的性能、丰富的功能和健壮性着称,但却存在着一些差异和优劣势。了解这些区别对于开发者在选择框架时至关重要。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),