rpk / plugin-manager
一个简单的观察者模式实现
1.1.0
2016-08-28 14:07 UTC
Requires
- php: >=5.3.23
- container-interop/container-interop: ^1.1.0
Requires (Dev)
- phpunit/phpunit: ~4.0
README
- 这是一个由 zend-eventmanager 启发的一个简单的观察者模式实现。对于复杂的流程,请使用 zend-eventmanager。
- 可以轻松与 zend-expressive (http://zendframework.github.io/zend-expressive) 结合使用,例如与管道结合(例如,在返回 HtmlResponse 之前更改/添加数据)
PluginResponseCollection 是 zend-eventmanager/ResponseCollection (http://github.com/zendframework/zend-eventmanager) 的副本
用法
- composer require rpk/plugin-manager
- #在应用程序中触发事件
-
$plugin = \RpkPluginManager\PluginChain::getInstance(); $params = $plugin->prepareArgs(['template'=> 'page::edit', 'data' => $data]); $plugin->trigger('page::edit-render.pre', $params);
-
- #附加到事件
return [
'plugin-manager' => [
'page::edit-render.pre' => [
new \RpkPluginManager\Plugin(\Coco\ChangeHome::class),
new \RpkPluginManager\Plugin(function($params, $target){
$params['data']['some_new_prop'] = 'some_new_value';
}, 10, false, \RpkPluginManager\Plugin::TYPE_CALLABLE),
]
]
];