Skip to content

worksolutions/yii-event-dispatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yii-ws-event-dispatcher

Travis CI Coverage Status

EventDispatcher component a simple and effective make your projects truly extensible.

Installation

Add a dependency to your project's composer.json:

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

Usage examples

Event call

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

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

Config EventDispatcher component

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

Create handler class

use WS\EventDispatcher\Handler;

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

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

Create event class

use WS\EventDispatcher\Event;

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

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

Releases

No releases published

Packages

No packages published

Languages