use*_*622 2 zend-framework zend-framework2
我正在将 Zend Framework 2 用于 Web 应用程序。在控制器操作中,我会创建一些 PDF 文档。我想使用帮助类来开发创建 PDF 的方法。存储类的最佳位置是什么?在控制器目录中?或者该框架是否在其架构中提供了一些更好的位置来执行此操作?或者甚至更好的方法或概念?
谢谢!
您可以在 Controller 目录下创建一个名为 Plugin 的目录。您的插件的好名字将具有“插件”终止。
如果您的插件只有一种方法,您可以将逻辑放在 __invoke 方法中:
public function __invoke($data)
{
// [ process $data ]
}
Run Code Online (Sandbox Code Playgroud)
如果没有并且您需要更多方法,那么您的 invoke 方法将必须返回您的插件实例:
public function __invoke()
{
return $this;
}
public function otherMethod($data)
{
// [ process $data ]
}
Run Code Online (Sandbox Code Playgroud)
然后你必须在 module.config.php 中注册你的插件,创建一个名为“controller_plugins”的新键:
'controller_plugins' => array(
'invokables' => array(
'myPdf' => 'MyModule\Controller\Plugin\MyPdfPlugin',
),
),
Run Code Online (Sandbox Code Playgroud)
您可以在那里使用用于 module.config.php 中每种服务的相同方法:invokables、factories、abstract_factories、aliases,...
现在您已准备好在控制器中使用它:
$this->myPdf($data);
Run Code Online (Sandbox Code Playgroud)
如果您有多种方法:
$this->myPdf()->otherMethod($data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |