(Walk around) Wann Symfony Dienste kommt:
Statt
$doctrine = $this->container->get('doctrine');
Verwendung
$doctrine = $this->getDoctrine();
Wie Sie können sehen, Symfony ermöglicht Ihnen den Zugriff auf die meisten Dienste s direkt von $this
Variable. NetBeans wird wissen, welche automatische Vervollständigung verwendet werden soll.
Werfen wir einen Blick, warum diese (innen Controller-Klasse)
mit USE-Anweisung
Es ist möglich, da Controller-Klasse Importe Registry-Klasse arbeitet,
use Doctrine\Bundle\DoctrineBundle\Registry;
und dann in Method Comment Annotation deklariert den zurückkehrenden Objekttyp mit
Wenn Sie $ this-> container-> get ('Doktrin') aufrufen; direkt dann wird die automatische Vervollständigung weggelassen und Sie müssen whats unten verwenden.
(Antwort) Keine magische Autovervollständigung funktioniert so weit. Benutze PHP Storm (es tut was du willst). Für diejenigen, die sich für NetBeans entscheiden, müssen Sie eine manuelle Anmerkung wie im folgenden Beispiel verwenden:
Wir können NetBeans auf eine Klasse verweisen, die es für die automatische Vervollständigung verwenden sollte.
1) Im Terminal von Projektverzeichnis Suche nach Service möchten Sie importieren:
php bin/console debug: Behälter
Wenn Sie wissen, was Sie für den Einsatz suchen Sie stattdessen:
php bin/konsole d: container | grep Lehre
...
Lehre --------------------------------- ----------------------- Lehre \ Bundle \ DoctrineBundle \ Registry
...
2) ist dies nicht der Fall ist ein Service verwenden get_class() PHP-Funktion zum Erstellen von Klassennamen des Objekts es bestimmte Variable. Oder verwende Reflektionsklasse. Es liegt an dir.
3) Sobald Sie den Klassennamen declare USE-Anweisung für eine bessere Lesbarkeit wissen
use Doctrine\Bundle\DoctrineBundle\Registry;
4) Jetzt wen wir wissen, was der Name der Objektinstanz in bestimmten Variablen Klasse ist, dass wir bereit sind, NetBeans zu informieren über was wir wissen, indem wir Kommentaranmerkungen verwenden, damit die automatische Vervollständigung aktiviert werden kann.
/**
* @var $doctrine Registry
*/
$doctrine = $this->container->get('doctrine');
Jetzt ist die automatische Vervollständigung aktiviert. Typ
$doctrine->|
dann Strg + Leertaste drücken.Siehe das Bild unten:
Ja, ich weiß, diese Lösung, aber es ist noch nicht, was ich suche. Ich öffnete ein Problem, das es auf http://netbeans.org/bugzilla/show_bug.cgi?id=226725 – dextervip
vorschlägt. Das ist, was ich auch tue, +1 - obwohl im Allgemeinen "geschützt" sollte zu "privatem" vorgezogen werden, es sei denn Es gibt einen bestimmten Grund, warum eine (theoretische) Kindklasse den Getter nicht verwenden sollte. – halfer