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