NetBeans-Autovervollständigung & PHP; Erzwinge __get () type

8

Schnell auf NetBeans 7.0 und Autocomplete für PHP;

Ich versuche herauszufinden ( wenn möglich ), wie man __get() in einer Klasse implementiert, um einen bestimmten Typ, den Typ, zurückzugeben ( beziehen sich auf ) Dies ist die gleiche Klasse, in der __get() immer implementiert ist.

Im Moment habe ich ( in View ):

%Vor%

Zugriff wie folgt:

%Vor%

Jetzt habe ich über @property gelesen, aber ich bin mir nicht sicher, ob das richtig ist für das, was ich mache. Die andere Sache ist ( und das wäre eine nette Funktion, wenn möglich ), dass die Ansichten normalerweise verschachtelt sind, so dass es in meiner Implementierung nicht ungewöhnlich ist, dies zu sehen:

%Vor%

Irgendeine Idee, wie man das erzwingen kann, oder stecke ich fest?

Aktualisierung:

So scheint @property in die richtige Richtung zu gehen, es scheint jedoch keine Unterstützung für das Platzieren der Eigenschaftsnamen zu geben. Also, um meine Frage zu erläutern, kennt jemand irgendwelche NetBeans-Plugins oder undokumentierte ( oder einfach nur schwer zu finden ) PHPDoc-Syntax zur Unterstützung von Wildcard @property Namen?

Ich denke in einer dieser Richtungen:

%Vor%

Natürlich funktioniert keine dieser Variationen, aber die letzte würde am logischsten erscheinen, da sie eine ähnliche Syntax für variadische Funktionsparameterlisten zu unterstützen scheint.

    
Dan 19.07.2011, 17:07
quelle

1 Antwort

7

Netbeans können diese Magie für Sie mit der @property wie im folgenden Beispiel gezeigt arbeiten.

Wie Sie bereits herausgefunden haben, müssen Sie jede Eigenschaft im Dokumentenblock definieren.

Eine andere mögliche Lösung für Ihr $x->y->z->view Beispiel ist unten aufgeführt.

Kopieren & amp; fügen Sie dies in Netbeans ein und es werden die Methoden der Bar-Klasse angezeigt:

%Vor%

Wenn Sie den Cursor hier bewegen und Strg + Leertaste drücken, sehen Sie:

Wenn Sie eine automatische Vervollständigung für ein längeres Ergebnis der Kette wünschen, können Sie auch

verwenden %Vor%

irgendwo in Ihrem Code.

    
edorian 19.07.2011, 17:21
quelle