PHPStorm-Typ-Hinting-Unterklassen der Basisklasse

10

In Bezug auf diesen Beitrag:

In PHPStorm, wie kann ich Typhinweis funktionieren lassen, wenn ich eine Superklassenmethode habe, die einen anderen Typ von jeder Unterklasse zurückgibt ,

hier handelt es sich um einen Randfall in PHPStorm Typ Hinting. Bitte versuchen Sie mitzukommen - ich werde mein Bestes tun, um so klar wie möglich zu sein:

Also, ich habe diese Basis abstrakte Klasse:

%Vor%

, von dem eine andere Klasse erbt:

%Vor%

und was noch um eine dritte Klasse erweitert wird:

%Vor%

Im Folgenden finden Sie ein Beispiel für die myModel-Klasse:

%Vor%

Meine wahre Frage ist, wie man dieses Szenario richtig "phpdoc":

Eine Unterklasse myNewController verwendet eine geerbte Variable _model , um eine Instanz einer anderen Klasse myModel zuzuweisen, die eine eindeutige Funktion form hat. Wie sollte PHPSstorm über form in myNewController richtig herausfinden?

Meine bisherige Lösung beinhaltet die Dokumentation von myBaseController wie folgt:

%Vor%

Ich denke jedoch, dass @var object zu breit ist (PHPStorm wird seine Deklaration nicht finden) und meine Vermutung ist, dass es einen besseren (und spezifischeren) Weg geben sollte, dies zu tun.

Vielleicht könnten wir stattdessen tun:

%Vor%

wenn PHPStorm eine Möglichkeit hatte, in die Unterklassen für die Methode zu schauen.

Irgendwelche Ideen? Vielen Dank im Voraus.

    
kstratis 30.09.2015, 10:28
quelle

3 Antworten

8

Sie können den Eigenschaftstyp in Ihrer Unterklasse angeben, ohne neuen Code einzufügen, indem Sie die @property Annotation verwenden:

%Vor%     
Fabian Schmengler 05.10.2015, 20:50
quelle
1

Obwohl vielleicht nicht die beste Praxis, wird diese sicherlich für Sie arbeiten.

Sie können das Element _model in der Unterklasse "überschreiben" und es in der Unterklasse von BaseModel dokumentieren.

%Vor%     
charlesrockbass 05.10.2015 13:32
quelle
-1

Um die Rückgabe der Klassenmethode zu dokumentieren, verwenden Sie return $this ; return static funktioniert auch

    
charmeleon 02.10.2015 13:36
quelle

Tags und Links