【问题标题】:How to add Helpers to a PhpRenderer in Zend Framework 2.0?如何在 Zend Framework 2.0 中将 Helpers 添加到 PhpRenderer?
【发布时间】:2012-10-05 15:20:36
【问题描述】:

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

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

【问题讨论】:

    标签: php zend-framework2 zend-view


    【解决方案1】:

    您可以通过从 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');
      }
    
    }
    

    【讨论】:

    • 这不是我要问的。我询问了如何添加帮助程序 PATH 或如何将特定工厂添加到 HelperPluginManager,而不是自定义帮助程序。无论如何,我希望你保留你的答案,因为它对其他人有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    相关资源
    最近更新 更多