nefunkcny autoload (NNetteLoader) – nette ver. 0.8, php 5.2.6
- keram
- Člen | 9
problem s prefixom klucov v poli $list triedy NNetteLoader
kde metoda tryLoad dostava argument napr „Debug“ ( bootstrap.php ..
Debug::enable(); )
a v tejto metode sa testuje
...
if (isset($this->list[$type])) ... // if ( isset($this->list('debug')) ...
...
pricom ale v premennej $this->list
je dana trieda ulozena
pod klucom „ndebug“ takze ju samozrejme nenacita a podobne aj dalsie
Update: ok beriem, ze asi chyba vznikla len v pripojenych prikladoch kde sa
pouziva volanie Debug::enable();
miesto spravneho
NDebug::enable()
ale urcite musim vytknut nedodrzanie mennej
konvencie ked nazov suboru by mal kopirovat nazov triedy obsahujucej ;).
imho bolo by to prehladnejsie.
Editoval keram (24. 1. 2009 4:21)
- kravčo
- Člen | 721
keram napsal(a):
problem s prefixom klucov v poli $list triedy NNetteLoader
kde metoda tryLoad dostava argument napr „Debug“ ( bootstrap.php .. Debug::enable(); )
a v tejto metode sa testuje... if (isset($this->list[$type])) ... // if ( isset($this->list('debug')) ... ...
pricom ale v premennej
$this->list
je dana trieda ulozena pod klucom „ndebug“ takze ju samozrejme nenacita a podobne aj dalsieUpdate: ok beriem, ze asi chyba vznikla len v pripojenych prikladoch kde sa pouziva volanie
Debug::enable();
miesto spravnehoNDebug::enable()
ale urcite musim vytknut nedodrzanie mennej konvencie ked nazov suboru by mal kopirovat nazov triedy obsahujucej ;).
imho bolo by to prehladnejsie.
Vo väčšine prípadov je správne volanie
Debug::enable();
.
Zrejme používaš verziu Nette s pridaným prefixom N (PHP-5.2-prefixed/), ktorá donedávna vôbec v distribúcii nebola, bola tam len kompatibilná (Nette/) + PHP-5.2/ & PHP-5.3/. Všetky príklady používajú syntax bez prefixu, verzia s prefixom vznikla zrejme preto, aby sa nette dalo použiť aj v prípade, ak by názvy Nette tried kolidovali s inými používanými knižnicami/frameworkami, prípadne pri nasadení jednotlivých súčastí Nette samostatne.
Okrem toho, je veľmi dôležité napísať pri bugreporte i číslo
revízie, totiž, Nette v0.8 prešlo dodnes presne 200 OK
revíziami, takže sa bez tejto informácie ťažko hľadá, kde môže byť
problém.