Command @inject nefunguje na properties z předka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
repli2dev
Člen | 57
+
0
-

Používám v aplikaci Kdyby/Console, konkrétně mám nějakou abstraktní třídu BaseCommand, který má následní kousek kódu:

/* @var Foo @inject */
public $foo;

Z této třídy dědí ActionCommand:

/* @var Bar @inject */
public $bar;

Během běhu je $bar nainjectovaná, ale $foo nikoliv… Jde o chybu, nebo mi něco uniká?

Narazil jsem na to v projektu s Nette 2.3 i 2.4… Když to použiji inject metodu, či to dám do traity, tak injektování uspěje.

EDIT: Vypadá to, že InjectExtension::getInjectProperties() neuspěje podmínka if (PhpReflection::parseAnnotation($rp, 'inject') !== NULL) {

Editoval repli2dev (12. 12. 2016 15:10)

David Grudl
Nette Core | 8129
+
+4
-

Musí tam být /** namísto /*

repli2dev
Člen | 57
+
0
-

David Grudl napsal(a):

Musí tam být /** namísto /*

Opravdu hloupá chyba… Díky za pomoc!

Felix
Nette Core | 1186
+
0
-

Premyslim, jestli neudelat nejaky checker na ty anotace. Ktery by to projel a zjistil, jestli clovek neudelal nejakou hloupou chybku.

Napriklad DoctrineAnnotations naparsujou anotace a automaticky zjistujou jejich spravne pouziti.

https://github.com/…tions/search?…

Vim, ze to neni totez, ale nebylo by to spatne.

@DavidGrudl

janpecha
Backer | 75
+
+1
-

@Felix myslím, že Code Checker by to měl umět.

David Matějka
Moderator | 6445
+
+2
-

tohle bych mohl pridat do nette pluginu pro phpstorm :)

David Grudl
Nette Core | 8129
+
0
-

Použití anotace uvnitř /* .. */ by zasloužilo pomalu samostatný plugin, pokud to PhpStorm neumí.

David Matějka
Moderator | 6445
+
0
-

hm, phpstorm to resi uplne spatne, kdyz je tam anotace, tak to zvyrazni jako phpdoc a ne jako komentar

CZechBoY
Člen | 3608
+
0
-

Já jsem si dal jinou barvu na komentář a na phpdoc a vyřešeno.

David Matějka
Moderator | 6445
+
0
-

@CZechBoY ano, ale problem je, ze to phpstorm bere jako phpdoc

CZechBoY
Člen | 3608
+
0
-

@DavidMatějka tzn. ti vadí, že sice to má jinou barvu, ale furt phpstorm nezařve, že jsem mu neřekl co to je za typ?
Aha! už jsem na to přišel – já totiž píšu multiline phpdoc vždy; problém je, když je na jednom řádku – potom je to jak píšeš.