Problém s inject anotací v presenteru – proměnná je null
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Mesiah
- Člen | 240
Zdravím,
prosím Vás, když v kódu použiji metodu inject* v presenteru data
služba se mi vloží do slotu presenteru, ale když použiji anotaci
@inject nikoli. V čem je problém, opomněl jsem něco? Nette 2.1.1
Díky a hezký den.
/**
* @var \Model\Orchestration\UserOrchestration
* @inject
*/
protected $userOrchestration;
- Šaman
- Člen | 2666
Při použití property injection musí být tato property public. Tou anotací jen říkáš, aby někdo, kdo vytváří instanci toho presenteru nastavil i tuto proměnnou, takže samozřejmě musí být zvenku viditelná. Pokud by se ti to nelíbilo z důvodu porušení zapouzdření, používej inject metody.
Editoval Šaman (15. 3. 2014 12:09)
- Jan Mikeš
- Člen | 771
Nebo muzes pouzivat kdyby/autowired Ta umi i protected properties a navic je oproti @inject lazy!