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

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

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

Nebo muzes pouzivat kdyby/autowired Ta umi i protected properties a navic je oproti @inject lazy!

Mesiah
Člen | 240
+
0
-

Šaman napsal(a):

Ježíš, já jsem tele; díky.
@**Lexi** díky za typ, ale zatím těch závislostí není tolik, tak lazy nepotřebuji. :)