¿Cómo extiendo el Ayudante de visualización del menú de navegación de Zend?

Necesito cambiar la salida deZend_View_Helper_Navigation_Menu. He encontrado las dos funciones que necesitaré modificar, y sé cómo hacer los cambios que necesito. Lo que no sé es cómo hacer que el objeto Navigation use mi ayudante de vista en lugar del Zend.

Fragmento de código que representa mi extensión de clase:

// file /library/My/View/Helper/Navigation/Menu.php
class My_View_Helper_Navigation_Menu extends Zend_View_Helper_Navigation_Menu
{
    protected function _renderDeepestMenu(Zend_Navigation_Container $container,
                                          $ulClass,
                                          $indent,
                                          $minDepth,
                                          $maxDepth)
    {
        // modified code here
    }

    protected function _renderMenu(Zend_Navigation_Container $container,
                                   $ulClass,
                                   $indent,
                                   $minDepth,
                                   $maxDepth,
                                   $onlyActive)
    {
        // modified code here
    }
}

Ediciones para aclarar

Quiero cambiar la clase de la<li> elementos y eliminar elEOL y sangría. No hay opciones para hacerlo con el script de vista de menú, por lo que tendré que extenderlo.

Inicializando el objeto de navegación en mi Bootstrap:

$navTable = new Default_Model_Site_DbTable_Navigation();
$view = $this->getResource('view');
$view->navigation(new Zend_Navigation($navTable->getNavigation()));

Representando el menú en mi diseño:

echo $this->navigation()->menu();

Solución

Lo hice funcionar cambiando el nombre de las cosas de la siguiente manera, pero no tengo claro por qué no puedo sobrecargar / sobrescribir el_Menu clase ymenu() función.

Cambiar el nombre de la clase aMy_View_Helper_Navigation_MyMenuAñade elmyMenu función a la clase (return parent::menu($container);)Llamadaecho $this->navigation()->myMenu(); en el diseño

Estructura metálica de clase:

// file /library/My/View/Helper/Navigation/MyMenu.php
class My_View_Helper_Navigation_MyMenu extends Zend_View_Helper_Navigation_Menu
{
    public function myMenu(Zend_Navigation_Container $container = null)
    {
        return parent::menu($container);
    }

    protected function _renderDeepestMenu(Zend_Navigation_Container $container,
                                          $ulClass,
                                          $indent,
                                          $minDepth,
                                          $maxDepth)
    {
        // modified code here
    }

    protected function _renderMenu(Zend_Navigation_Container $container,
                                   $ulClass,
                                   $indent,
                                   $minDepth,
                                   $maxDepth,
                                   $onlyActive)
    {
        // modified code here
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta