如何在 zf2 中使用 helper 类?

How to use helper classes in zf2?

我正在为网络应用程序使用 Zend Framework 2。 在控制器动作中,我会创建一些 PDF 文档。我想使用助手 class 来开发创建 PDF 的方法。 存放 class 的最佳位置是什么?在控制器目录中?或者该框架是否在其架构中提供了一些更好的位置来执行此操作?或者更好的方法或概念?

谢谢!

您可以在Controller目录下创建一个名为Plugin的目录。为您的插件取一个好名字会有 'Plugin' 结尾。

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

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

如果没有并且您需要更多方法,那么您的调用方法将必须 return 您的插件实例:

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 中每种服务的相同方法:可调用、工厂、abstract_factories、别名……

现在您可以在控制器中使用它了:

$this->myPdf($data);

如果你有不止一种方法:

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