Mafia II

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_Hel­per_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_Hel­per_Partial (můj oblíbený :) )

Vložty komentář