Prečo presenter vyhadzuje chybu, ktorá je v inom presentery?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Čamo
Člen | 798
+
0
-

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)

David Matějka
Moderator | 6445
+
0
-

Ukaz kod a chybu, takhle ti nic nereknu..

Čamo
Člen | 798
+
0
-

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
+
0
-

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.

Čamo
Člen | 798
+
0
-

Michal V
To co mi nieje jasné je, že zavolám presenter post a ladenka mi píše že mám chybu v presentery homepage.
A rád by som vedel ako sa ten kod vlastne vyhodnocuje. Z akého dôvodu sa to deje.

Ps: tá premenná bola protected nie private, ale to tu neriešim.

Michal Vyšinský
Člen | 608
+
0
-

@Č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.

Čamo
Člen | 798
+
0
-

Ale to sa nedeje pri každom requeste. Iba keď sa generuje DI kontajner, či ako je to? Ešte vtom mám zmetok.

Editoval Čamo (28. 6. 2014 22:31)