Zend View 的自定义实例和对 View Helpers 的访问

Custom instance of Zend View and access to View Helpers

我使用 Zend View 呈现 HTML 代码来生成 PDF 文件。我的代码如下所示:

    $viewModel = new ViewModel(array(
        'order' => $order
    ));

    $viewModel->setTemplate('invoice');

    $resolver = new TemplatePathStack();
    $resolver->addPath(realpath(__DIR__ . '/../view/app'));

    $renderer = new PhpRenderer();
    $renderer->setResolver($resolver);

    $html = $renderer->render($viewModel);

这里我有 html 代码,我可以将其传递给 mPDF class 以生成 PDF 文档。

无论如何,我想在 "invoice" 模板中使用 View Helper 来做一些事情。如果我在 module.php 文件中定义我的自定义助手,则无法访问它。所以我需要用另一种方式来定义它,但我找不到如何...你们能帮帮我吗?

非常感谢!

您可以附加带有名称的视图助手并引用 class 名称。

https://framework.zend.com/manual/2.4/en/modules/zend.view.helpers.advanced-usage.html

这是给你的例子,希望你使用的是可调用插件class。

...
$renderer = new PhpRenderer();
$renderer->setResolver($resolver);
$renderer->getHelperPluginManager()->setInvokableClass('viewhelpername', 'Path/To/Class');