DibiConnection v services
- baal
- Člen | 34
Zdravím,
v Nette z 2011–08–24 jsem si vesele používal následující konstrukci:
services:
robotLoader:
option:
directory:
- %appDir%
- %libsDir%/dibi
run: true
dibi:
class: \DibiConnection
arguments:
- %database%
Dneska jsem zkusil aktualizovat na Nette z 2011–10–12 a „Class ‚\DibiConnection‘ has not been found.“
RobotLoader určitě funguje, když zrušíme Dibi service a zavolám DibiConnection přímo v PHP po načtění configu, tak funguje. Chybka v Nette nebo správné chování?
- arron
- Člen | 464
kucix wrote:
Ahoj,
zkus tohle:…
To už je ale workaround…
Setkal jsem se s tímhle už asi před týdnem, ale neměl jsem čas psát bug-report. Jsem přesvědčený, že je to chyba přímo v Nette. Při zpracovávání služeb z configu se totiž kontroluje existence dané třídy, ale ještě v tu chvíli není nastartovaný robotloader, takže třída není nalezena. Když ji odstraníš z configu, tak se pak robotloader normálně nastartuje a všechno funguje zdánlivě normálně. Ale v době zpracovávání služeb z configu ještě robotloader neběží.
Netuším přesně co se změnilo (podrobně jsem to nezkoumal), ale souvisí to z přepracováním DI v Nette.
edit: teď koukám, že tam toho do DI hodně přibylo…lehce jsem to projel očima a nezdá se, že by to mohlo být opravené…
Editoval arron (25. 10. 2011 20:59)
- Vojtěch Dobeš
- Gold Partner | 1316
Ano, je to bug, již nahlášený, s workaroundem přišel Honza Tvrdík.