Cannot write to an undeclared property Nette\Reflection\Method::$class
- igor.pocta
- Člen | 100
Ahoj,
Nette mi začalo zničehonic na všech aplikacích vyhazovat tuto chybu. Stalo se mi to již nekolikrát a vždy pomohl až restart Apache serveru. Zkoušel jsem promazat cache i tmp adresář pro celý Apachea nepomohlo to.
Jedu na XAMPP / Windows.
Odkaz na Trasy soubor: http://files.uloziste.com/…$class..html
- David Grudl
- Nette Core | 8218
Zažil jsem to taky a pomohl restart Apache. Tohle bude nějaká těžko odhalitelná chyba v PHP.
- uestla
- Backer | 799
Také se mi to stává a je to dost nepříjemné, děje se mi to od upgradu na PHP7 (Windows 7).
Myslel jsem, že byl nějaký segfault v nativním PHP reflection (měl jsem dojem, že jsem to četl v Release notes, ale teď už jsem to nenašel).
Nicméně děje se mi to i v PHP 7.0.13 :-(
EDIT: Jelikož se to objevuje tak nějak nevyzpytatelně, je těžké to zkoumat.
Hlavní indicie je ale myslím to, že Nette\Reflection\Method
dědí od \ReflectionMethod
.
Ta v konstruktoru přiřazuje do property $class
, která
evidentně není definovaná a SmartObject ho seřve. Možná by pomohlo přidat
k Nette třídě anotaci @property string $class
…
EDIT 2: Bohužel přímo v kódu PHP se nevyznám, ale našel jsem tohle, což volá “základní” zapsání property třídy – což tedy v normálním PHP chybu nevyvolá.
EDIT 3: Zvláštností ale zůstává, proč se tohle děje jen někdy, a jakto, že restart Apache pomůže…