Yii 中优雅的使用事件

码农天地 -
Yii 中优雅的使用事件

Yii 中使用一个事件大概是这个样子的
// 绑定事件
$component->on($event::EVENT_NAME, [$object, 'methodNameA']);
$component->on($event::EVENT_NAME, [$object, 'methodNameB']);
// 触发事件
$component->trigger($event::EVENT_NAME, $event); 
从上面代码中可以看出如果要触发一个 5 个监听监听的事件,是要入侵 6 行代码的,这显然是不够优雅的,所以写了个组件包将事件与监听绑定写在组件配置文件,调用的时候只需一行代码去触发事件。源码https://github.com/guanguans/yii-event环境要求Yii > 2.0安装
$ composer require guanguans/yii-event -vvv
配置
...
'components' => [
    ...
    'event' => [
        'class' => \Guanguans\YiiEvent\Event::className(),
        'listen' => [
            // 事件类名
            \app\events\ExampleEvent::className() => [      
                // 监听该事件监听的类名
                \app\listeners\ExampleListener::class,
            ],
        ],
    ],
    ...
],
...
使用示例创建事件 app\events\ExampleEvent.php
namespace app\events;

use yii\base\Event;

class ExampleEvent extends Event
{
    public $name = 'example';
}
创建监听 app\listeners\ExampleListener.php
namespace app\listeners;

use Guanguans\YiiEvent\ListenerInterface;
use yii\base\Event;

class ExampleListener implements ListenerInterface
{
    public static function handle(Event $event)
    {
        // to do something.
        var_export($event->name);
    }
}
触发事件
Yii::$app->event->dispatch(new ExampleEvent());
// or
event(new ExampleEvent());
验证结果
'example'
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

phpyii

扩展阅读

加个好友,技术交流

1628738909466805.jpg