如何在Zend Framework 2.0中将Helpers添加到PhpRenderer?

时间:2012-10-05 15:20:36

标签: php zend-framework2 zend-view

我正在将旧的应用程序迁移到新的Zend Framework 2.0。我的应用程序使用它作为一个库(没有Zend \ Application使用或MVC部分的任何东西),我使用表单助手时遇到问题。所以,我结束了两个问题:

  1. 如何将辅助路径添加到PhpRenderer?
  2. 通过代码搜索,我找到了一个名为ViewHelperManagerFactory的类,它有默认的辅助路径。如何使用它来更改HelperManager的工厂创建的新工具,并设置了所有路径? (注意我没有ServiceManager)。

1 个答案:

答案 0 :(得分:3)

您可以通过从HelperPluginManager调用setFactory()来添加帮助器。

$renderer = new \Zend\View\Renderer\PhpRenderer();
$renderer->getHelperPluginManager()->setFactory('specialPurpose', function () {
    return new SpecialPurpose();
  });

echo $renderer->specialPurpose();
echo $renderer->specialPurpose();
echo $renderer->specialPurpose();

class SpecialPurpose extends \Zend\View\Helper\AbstractHelper {

  protected $count = 0;

  public function __invoke() {
    $this->count++;
    $output = sprintf("Called %d time(s).", $this->count);
    return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
  }

}