bariew/yii2-event-component

将事件附加到所有模型上

安装数: 43,690

依赖者: 4

建议者: 0

安全: 0

星标: 21

关注者: 6

分支: 2

公开问题: 0

类型:yii2-extension

2.0.0-beta 2014-08-06 12:02 UTC

This package is auto-updated.

Last update: 2024-09-16 15:10:44 UTC


README

以非常简单的方式将事件附加到所有应用模型上。您只需以这种方式在config/_events.php中列出您的事件处理器:[ 'event\sender\ClassName' => [ 'eventName' => [ 'event\handler\ClassName' => 'methodName' ] ] ];

下面是示例。

安装

安装此扩展的首选方式是通过 Composer

运行以下命令:

php composer.phar require --prefer-dist bariew/yii2-event-component "*"

或者将以下内容添加到您的 composer.json 文件的require部分:

"bariew/yii2-event-component": "*"

使用

    Define app component in main config components section like in this example: 
    'components' => [
    ...
          'eventManager'=> [
              'class'     => 'bariew\eventManager\EventManager',
              'events'    => [
                  'app\models\User' => [
                      'afterInsert' => [
                          ['app\models\Email', 'userRegistration']
                      ],  
                  ]
              ]
          ],
    ]

    Explanation: in the example we defined that after creating new User model ('afterInsert')
    Email::userRegistration($event) method will be called.
    Since 1.1.0 you may also not define event manager, but just put _events.php
    into your config folder returning the same 'events' array as in example:

    <?php
    return [
        'app\models\User' => [
            'afterInsert' => [
                ['app\models\Email', 'userRegistration']
            ],
        ]
    ];
    since 1.3.0 handler can also keep additional data and $append boolean as for Event::on() method eg:
    ... [$handlerClassName, $handlerMethodName, ['myData'], false]