[bug] Vlastní PresenterFactory v Nette 2.4
- nanuqcz
- Člen | 822
Ahoj,
snažim se v Nette 2.4 použít vlastní PresenterFactory, ale to, co
fungovalo v 2.3, mi v nové verzi prostě nefunguje.
Postup:
1/ composer create-project nette/sandbox
2/ Do config.neon přidám dle dokumentace toto:
services:
application.presenterFactory:
class: App\TestPresenterFactory
alteration: yes
3/ Implementuju TestPresenterFactory
, zatím pro testovací
účely s defaultním chováním klasického Nette:
Výsledek: Chyba „Call to a member function isSent() on null“.
Plná
laděnka zde
Všimněte si, že ve výpisu laděnky není nikde volání funkce „isSent()“ (bug v Tracy, která pravděpodobně nezobrazila některý PHP soubor).
V čem je problém? Proč jen při jednoduchém podědění výchozího PresenterFactory najednou sandbox nefunguje?
Děkuji za odpovědi.
Editoval nanuqcz (26. 6. 2017 18:43)
- David Matějka
- Moderator | 6445
Dojde totiz k prepsani (respektive zahozeni) argumentu PresenterFactoryCallback
bohuzel, v configu nejde zmenit trida se zachovanim argumentu, takze bud je musis definovat znova
tady je teda nevyhoda, ze invalidLinkMode a touchToRefresh detekuje ApplicationExtension dle nastaveni a prostredi, coz tady neudelas
druhou moznosti je pak zmenit tu tridu v compiler extension, kde si muzes sahnout na puvodni argumenty te sluzby a pouzit je znovu
edit: zalozil jsem issue, ktery s tim souvisi: https://github.com/…i/issues/154
- matopeto
- Člen | 395
Rovnaka chyba sa riesila tu: https://forum.nette.org/…stom-folderi#… a vyzera ze tam to nejako poriesili…