rpk/plugin-manager

一个简单的观察者模式实现

1.1.0 2016-08-28 14:07 UTC

This package is auto-updated.

Last update: 2024-09-24 07:32:20 UTC


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),
        ]    
    ]
];