worksolutions / yii-ws-event-dispatcher
Yii event dispatcher
dev-master
2014-06-05 08:10 UTC
Requires
- php: >=5.3.0
- yiisoft/yii: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-11-19 07:55:11 UTC
README
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 ); } }