mhndev / event
1.2.2
2017-10-03 13:58 UTC
Requires
- php: >=5.3.9
This package is auto-updated.
Last update: 2024-09-06 09:27:53 UTC
README
这是一个非常简单且轻量级的php包,用于开发基于事件的软件
安装
composer require mhndev/event
示例用法
将闭包绑定到事件
Event::bind('order.payed',function($order){ //do some cool stuf here });
另一个示例
class MyClass { public function __invoke($order) { //do something here } } $myObject = new MyClass; Event::bind('order.payed', $myObject($order));
触发事件
// pass $order object as second argument Event::trigger('order.payed', $order);
实体(模型)观察者
在模型上绑定特定事件的观察者。
User::addObserver('before_update', function($driver){ });
在模型对象上触发事件。
活动记录模式
class User { use \mhndev\event\ObservableTrait; function update(array $data) { $user = $this; $this->fireEvent('before_update', $this); $updatedUser = $this->update($array); $driver->fireEvent('after_update', $user, $updatedUser); } }
数据映射模式
class User { use \mhndev\event\ObservableTrait; } class UserRepository { function update($user_identifier, array $data) { $user = $this->findByIdentifier($user_identifier); $user->buildByOptions($data); $user->fireEvent('before_update', $user); $updatedUser = $this->update($user); $driver->fireEvent('after_update', $user, $updatedUser); return $updatedUser; } }
待办事项
-实现测试