Command @inject nefunguje na properties z předka
- repli2dev
- Člen | 57
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)
- Felix
- Nette Core | 1196
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
- David Grudl
- Nette Core | 8218
Použití anotace uvnitř /* .. */
by zasloužilo pomalu
samostatný plugin, pokud to PhpStorm neumí.
- David Matějka
- Moderator | 6445
hm, phpstorm to resi uplne spatne, kdyz je tam anotace, tak to zvyrazni jako phpdoc a ne jako komentar