如何在zf2中使用帮助器类?

时间:2015-03-08 16:45:50

标签: zend-framework zend-framework2

我正在使用Zend Framework 2进行网络应用。 在控制器Action中,我将创建一些PDF文档。我想使用帮助程序类来开发创建PDF的方法。 这个班级最好的地方是什么?在控制器目录中?或者框架是否在其架构中提供了更好的位置?甚至更好的方法或概念?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以在Controller目录下创建一个名为Plugin的目录。插件的一个好名称将有'插件'终止。

如果您的插件只有一个方法,您可以将您的逻辑放在__invoke方法中:

public function __invoke($data)
{
    // [ process $data ]
}

如果没有,并且您需要更多方法,那么您的invoke方法必须返回您的插件实例:

public function __invoke()
{
    return $this;
}

public function otherMethod($data)
{
    // [ process $data ]
}

然后你必须在module.config.php中注册你的插件,创建一个名为'controller_plugins'的新密钥:

'controller_plugins' => array(
    'invokables' => array(
        'myPdf' => 'MyModule\Controller\Plugin\MyPdfPlugin',
    ),
),

你可以在那里使用与module.config.php中每种服务相同的方法:invokables,factories,abstract_factories,aliases,...

现在您已准备好在控制器中使用它:

$this->myPdf($data);

如果您有多种方法:

$this->myPdf()->otherMethod($data);