Creando URL View helper Custom Zend
Isto pode parecer sinxelo, pero eu estaba batendo a cabeza intentando crear un URL nun auxiliar de visualización personalizada no Zend Framework . Eu teño a configuración de enrutamento que recibe o módulo do sub-dominio en uso, entón eu non podería usar un simple URL codificado.
Basicamente, pero invocando unha instancia do controlador de fronte a súa posible incorporarse o router e montar unha url. Monte é a función usada no view helper. A URL é construída a partir dunha matriz de módulo, o controlador, acción, etc, seguido por un segundo parámetro da ruta que emprega. O código é o seguinte:
<? PHP / ** * Ver auxiliar que retorna URL categoría de enlace * * @ Author Lloyd Watkin * @ Since 25/01/2010 paquete * @ ViewHelper subpackage * @ LinksUrl * / Pro_View_Helper_LinksUrl clase esténdese Zend_View_Helper_Abstract { / ** * Volta URL categoría de enlace * * @ Paran $ Doctrine_Record categoría * @ Paran cadea $ módulo * @ Paran cadea $ controlador * @ Paran cadea $ action * @ Return cadea Url * / linksUrl función pública ($ categoría, $ module = 'www', $ Controller = 'links', $ action = 'index') { $ Router = Zend_Controller_Front:: getInstance () -> getRouter (); return $ router-> montar (array ( "Módulo" => $ módulo, 'Controller' => $ controlador, 'Action' => $ acción, 'Categoría' => "{$ id categoría>} - {$ nome da categoría->}", ), "Índice www '); } }
Outra forma de facer isto é para chamar Zend_View_Helper_Url si e chamar o método de URL (se quere usar o axudante de si). Isto pódese facer empregando o seguinte código:
<? PHP / ** * Ver auxiliar que retorna URL categoría de enlace * * @ Author Lloyd Watkin * @ Since 25/01/2010 paquete * @ ViewHelper subpackage * @ LinksUrl * / Pro_View_Helper_LinksUrl clase esténdese Zend_View_Helper_Abstract { / ** * Volta URL categoría de enlace * * @ Paran $ Doctrine_Record categoría * @ Paran cadea $ módulo * @ Paran cadea $ controlador * @ Paran cadea $ action * @ Return cadea Url * / linksUrl función pública ($ categoría, $ module = 'www', $ Controller = 'links', $ action = 'index') { Zend_View_Helper_Url $ ligazón = new (); return $ url> link (array ( "Módulo" => $ módulo, 'Controller' => $ controlador, 'Action' => $ acción, 'Categoría' => "{$ id categoría>} - {$ Slug}", ), "Índice www '); } }
Ambos son practicamente idénticas. Non é unha cousa difícil de facer no cadro, pero pode incorporarse vostede para fóra;)


















































Vostede sabe que podería usar a vista de obxecto dispoñibles, ampliando Zend_View_Helper_Abstract para chamar o helper url existente, en vez de crear un novo.
Non necesitará empregar $ url this-> view-> (...);