worksolutions / yii-ws-event-dispatcher
Yii 事件分发器
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-09-24 07:07:55 UTC
README
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 ); } }