2015-06-23 6 views
7

PHPDoc bietet die @var tag, die auch für außerhalb einer Klasse deklarierte Variablen funktionieren sollte.Wie kann ich ein PHPDoc für magische Eigenschaften außerhalb der Klassendefinition erstellen?

Doch dies scheint nicht zu funktionieren, wenn ich die Variable als ein magisches Element eines Objektes definieren:

/** @var $app->translator \Fortress\MessageTranslator */ 
$app->translator = new \Fortress\MessageTranslator(); 

Wo $app ein Slim ist Objekt, das über magische Getter und Setter beliebige Eigenschaftszuweisung unterstützt.

Ich weiß, dass ich es Slim selbst über den @property Tag hinzufügen könnte, aber dann würde ich brauche den Kern Slim Code, den ich jedes Mal ändern, um eine neue Eigenschaft erstellen.

Unterstützt PHPDoc diese Art der dynamischen Eigenschaft Dokumentation?

+1

Haben Sie versucht, "$ app-> translator" im Abschnitt "doc" zu entfernen? Wie auch immer [das könnte Ihnen helfen] (http://stackoverflow.com/questions/6395737/how-do-i-make-my-php-ide-understand-dependency-injection-containers). –

+0

Haben Sie das jemals gelöst? – Andy

+0

Andy, ich benutze Slim 3, das einen expliziten DI-Container verwendet. Also, etwas, was in @ Onerrors Antwort _should_ funktioniert. Eine ähnliche Antwort finden Sie im obigen Link. – alexw

Antwort

-1

Sie brauchen nicht $ app-> Übersetzer im Doc-Block. Es sollte wie folgt aussehen:

/** @var \Fortress\MessageTranslator your_possible_comments */ 

oder

/** @type \Fortress\MessageTranslator your_possible_comments */ 

Link to the documentation.

Verwandte Themen