为zf2 php设置$ this-> view->插件

时间:2014-03-07 21:06:00

标签: php plugins view zend-framework2

我正在使用zf2 flashMessenger()输出Google Analytics代码段以注册交易。 flashMessenger允许我只输出一次片段,避免重复事件。

问题是flashMessenger在输出内容之前使用EscapeHtml助手来转义内容。这是来自flashMessenger的getter。

   /**
     * Retrieve the escapeHtml helper
     *
     * @return EscapeHtml
     */
    protected function getEscapeHtmlHelper()
    {
        if ($this->escapeHtmlHelper) {
            return $this->escapeHtmlHelper;
        }

        if (method_exists($this->getView(), 'plugin')) {
            $this->escapeHtmlHelper = $this->view->plugin('escapehtml');
        }

        if (!$this->escapeHtmlHelper instanceof EscapeHtml) {
            $this->escapeHtmlHelper = new EscapeHtml();
        }

        return $this->escapeHtmlHelper;
    }

其中一个条件是如果method_exists($this->getView(), 'plugin')使用$this->view->plugin('escapehtml');。如何设置$ this-> view->插件,因为我想使用自定义EscapeHtml()对象。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您不需要,可以使用自己的默认escapeHtml视图助手覆盖:

Module#getViewHelperConfig方法中:

class Module 
{
     public function getViewHelperConfig() 
     {
         return array(
             'invokables' => array(
                 'escapeHtml' => 'Foo\View\Helper\EscapeHtml',
             )
         );
     }
 }