Objevil jsem jednu docela důležitou chybu (nebo spíš nedokumentované chování) v controller action pluginu ViewRenderer, který je jedním z nejdůležitějších v Zend Frameworku 1.0.x. Jde o použití velkých a malých písmen v názvech action method a view skriptů.
Jde o to, že ViewRenderer převádí všechny názvy view skriptů na malá písmena, pokud tedy máte controller AdminController a action metodu, která vypadá např. takto
public function addCategoryAction() { .. .. }
tak by si člověk řekl, že pokud odpovídající action skript má v
/views/scripts/admin/addCategory.phtml
tak je všechno v pořádku, ale
chyba lávky. ViewRenderer totiž nejdříve převede název všeho včetně názvu action metody
na malá písmena a teprve pak zavolá skript takovéhoto jména. Problém se ještě podtrhne tím,
že na Win vám to pojede i se souborem addCategory.phtml
, ale na Linuxu ani náhodou.
Nebyl by to až takový problém, kdyby to alespoň bylo popsáno v dokumentaci, jsou na to i bug tickety již od srpna 2007, tak uvidíme, zatím se ale nic neděje. Jsou tedy dvě možnosti:
- Přejmenovat všechny view skripty (v našem případě tedy na
addcategory.phtml
). - Opravit si to sám přímo v Zend Frameworku dle tohoto návodu.
Při malém počtu view skriptů asi první volba, při větším si buď napsat převodní command line skript nebo druhá možnost.
Komentáře (2)
Ahoj,
pár věcí co mě napadlo k vylepšení
- Nadpis článku by mohl být rovnou i odkaz
- jazyk bych neukládal do session/cookie ale nechával ho v url kvůli SEO, jinak se ti budou indexovat jen anglické stránky
jinak jsem rád, že bude venku něco na ZF...
Na jaře jsem si také psal systém pro svůj blog, ale spíš to bylo potrénování, za kód bych se teď už styděl, nakonec jsem skončil na Wordpressu..
ještě možná že mě nedovolilo vložit email:
mhujer [kyselá-ryba] gmail [puntík] com mělo by se to vypsat u formuláře... a nelimitoval bych komentář zadáním emailu..
Dík za připomínky, budu na tom dělat, víc jsem to rozvedl ve fóru o ZF.
Komentáře jsou uzavřeny.