在其他插件ZF2中调用插件

时间:2013-06-25 15:20:17

标签: zend-framework2 zend-studio

在Zend Framework 2中,我可以回想一下插件模块A插件模块B.

如果您从控制器中回忆起插件,它可以在任何地方使用,但我需要在另一个插件中调用插件。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

你基本上必须将Plugin插入插件。即:

$pluginA = new PluginA();
$pluginB = new PluginB($pluginA);
echo $pluginB("Hello World");

class PluginB {
    protected $pluginA;
    public function __construct(PluginA $pluginA) {
        $this->pluginA = $pluginA;
    }

    public function __invoke($arg) {
        $step1 = $this->doSomething($arg);
        return $this->pluginA->doSomeOtherPluginAThing($step1);
    } 
}

最终,您的解决方案会有所不同,您可以通过ServiceManager Factories进行注入

答案 1 :(得分:1)

您可以从插件中访问控制器:

$this->getController()->anotherPlugin();

答案 2 :(得分:0)

尝试从Controller插件管理器加载插件。

PluginB

$pluginA = $this->serviceLocator->get('ControllerPluginManager')->get('pluginA');
// Invoke plugin as normal
$pluginA(params);