Zend framework Zend Framework:我使用什么shld自动呈现来自FlashMessenger的消息(如果有的话)

Zend framework Zend Framework:我使用什么shld自动呈现来自FlashMessenger的消息(如果有的话),zend-framework,Zend Framework,我想知道我的许多页面是否会使用FlashMessenger,自动呈现页面顶部的所有消息的最佳方式是什么(就像这里的SO一样,告诉用户他们有徽章等)您可以使用preDispatch插件将FlashMessenger的内容插入到视图中,并将其输出到布局模板中 我有这个视图助手: <?php class Zf_View_Helper_FlashMessenger extends Zend_View_Helper_Abstract { /** * @var Zend_Contr

我想知道我的许多页面是否会使用FlashMessenger,自动呈现页面顶部的所有消息的最佳方式是什么(就像这里的SO一样,告诉用户他们有徽章等)

您可以使用preDispatch插件将FlashMessenger的内容插入到视图中,并将其输出到布局模板中

我有这个视图助手:

<?php

class Zf_View_Helper_FlashMessenger extends Zend_View_Helper_Abstract
{
    /**
     * @var Zend_Controller_Action_Helper_FlashMessenger
     */
    private $_flashMessenger = null;

    /**
     * Display Flash Messages.
     *
     * @param  string $key Message level for string messages
     * @param  string $template Format string for message output
     * @return string Flash messages formatted for output
     */
    public function flashMessenger($key = 'success',
                                   $template='<div id="flash-message" style="display:none"><p class="%s">%s</p></div>')
    {
        $flashMessenger = $this->_getFlashMessenger();

        //get messages from previous requests
        $messages = $flashMessenger->getMessages();

        //add any messages from this request
        if ($flashMessenger->hasCurrentMessages()) {
            $messages = array_merge(
                $messages,
                $flashMessenger->getCurrentMessages()
            );
            //we don't need to display them twice.
            $flashMessenger->clearCurrentMessages();
        }

        //initialise return string
        $output ='';

        //process messages
        foreach ($messages as $message)
        {
            if (is_array($message)) {
                list($key,$message) = each($message);
            }
            $output .= sprintf($template,$key,$message);
        }

        return $output;
    }

    /**
     * Lazily fetches FlashMessenger Instance.
     *
     * @return Zend_Controller_Action_Helper_FlashMessenger
     */
    public function _getFlashMessenger()
    {
        if (null === $this->_flashMessenger) {
            $this->_flashMessenger =
                Zend_Controller_Action_HelperBroker::getStaticHelper(
                    'FlashMessenger');
        }
        return $this->_flashMessenger;
    }
}
因此,在我看来,我只是附和助手:

<?php echo $this->flashMessenger(); ?>


我正在尝试这样做,但是如何从插件访问flashMessenger?Zend_Controller_Action_HelperBroker::getStaticHelper(“flashMessenger”);
<?php echo $this->flashMessenger(); ?>