worksolutions/yii-ws-event-dispatcher

dev-master 2014-06-05 08:10 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:07:55 UTC


README

Travis CI Coverage Status

EventDispatcher 组件是一个简单而有效的组件,可以使您的项目真正可扩展。

安装

将依赖项添加到您的项目的 composer.json 文件中

{
    "require": {
        "worksolutions/yii-ws-event-dispatcher": "dev-master"
    }
}

用法示例

事件调用

$dispatcher = Yii::app()->eventDispatcher;

/** @var SomeEvent $event */
$event = $dispatcher->createEvent(SomeEvent::className(), $eventTestParams);
$dispatcher->fire($event);

配置 EventDispatcher 组件

'components' => array(
    'eventDispatcher' => array(
        'class' => \WS\EventDispatcher\EventDispatcher::className(),
        'events' => array(
            SomeEvent::className() => array(
                array(
                     'class' => SomeHandler::className(),
                     'params' => array(),
                ),
                //...
            ),
            //...
        ),
    ),
    //...
)

创建处理器类

use WS\EventDispatcher\Handler;

class SomeHandler extends Handler {
    protected function identity() {
        // check the availability of execution
        return true;
    }

    protected function process() {
        // you handler code
    }
}

创建事件类

use WS\EventDispatcher\Event;

class SomeEvent extends Event {
    public function attributeNames() {
        return array(
            'fieldName',
            //...
        );
    }

    public function rules() {
        return array(
            //validation rules
        );
    }
}