Prečo presenter vyhadzuje chybu, ktorá je v inom presentery?
- Čamo
- Člen | 798
Chajamatakajabát či,
A chcem sa spýtať, že prečo mi presenter vyhadzuje chybu, ktorá je v inom
presentery. Dúfam že rozumiete čo chcem povedať, lebo ja moc nechápem ako
je to možné. Proste zavolám presenter post a ladenka na mňa
vyskočí, že presenter homepage má nejaký problém. To ako
sa zpracovávajú tie požiadavky?
Editoval Čamo (28. 6. 2014 20:28)
- Čamo
- Člen | 798
No chyba už nieje ale išlo o to, že som presúval premennú $userSess, ktorá je spoločná pre všetky presentery do base presenteru. No a kým bola tá premenná aj v basePresentery aj v tom konkrétnom presentery tak to hádzalo chybu(must be protected or weaker,ale pritom bola protected…). Samozrejme aby sa to neprepisovalo som to vymazal však preto sa to robí. Ale zmazal som to len v danom presentery. V ostatných to ostalo a vyhadzovalo mi to tú istú chybu, kým sm to nezmazal vo všetkých. Potom to prestalo.
- Michal Vyšinský
- Člen | 608
A ta chyba ti není jasná? V třídě, která od něčeho dědí a přepisuješ property (nevím na co) tak když je v rodiči protected, tak v potomku nesmí být private – viditelnost musí zůstat aspoň protected. Toto je ale čistě chyba PHP, s handlováním requestů v Nette nemá nic společného.
- Michal Vyšinský
- Člen | 608
@Čamo chyba se ti vyvolá v jakékoliv třídě, nemusíš ji ani použít. Nette RobotLoader (a i Composer) si při načítání tříd načte ten soubor, takže si PHP projde zdrojáky. Takže chyba může být kdekoliv a nemusí se ten kód ani použít. To je právě případ tvého homepage presenteru. Loader ten soubor načetl a PHP našlo tu chybu. Schválně si vytvoř nějakou třídu a nech ji extendovat třídu Abc (ano, neexistuje). I když tu třídu vůbec nikde nepoužiješ, tak ti vyskočí laděnka.