Zend_View_Helper_Url – pár tipů
Květen 25th, 2008
V aplikaci mám helper, který generuje menu ze stromu do UL. V něm jsem chtěl nějak elegantně vyřešit routování na kategorie a i na root webu. Řekl jsem si, že to udělám přes Zend_View_Helper_Url a routy, abych nemusel přepisovat URL, kdyby se něco změnilo až budu vyvíjet dál. S routami kategorií nebyl problém. Ale když sem si chtěl udělat „null“ routu na root webu, tak jsem pohořel, protože router očekává aspoň nějaké parametry a routa "" mu nebyla dost dobrá. Nakonec to nebylo ani tak složité, ale třeba to někomu ušetří práci (doufám, že zápis v mém interním formátu nebude moc zmatečný):
<route>
<name>base</name>
<url>:root</url>
<params>
<module>shop</module>
<controller>index</controller>
<action>index</action>
</params>
</route>
A potom prostě pošlete ten argument root prázdný :)
$url = new Zend_View_Helper_Url();
$url->url(array('root'=>''),'base');
Další užitečnou věcí je, že pokud ve svém helperu potřebujete používat aktuální view objekt, musíte nadefinovat interface, kterým ho Helper Broker injectne do vašeho helperu. Popis jak na to najdete v manuálu (úplně dole). Pak můžete používat v klidu registrované view helpery ve svém helperu – tedy budete mít např. k ruce Zend_View_Helper_Partial (můj oblíbený :) )
Home