phpstorm symfony2 fehlender Service warning

9

Ich habe das Symfony2-Plugin für Phpstorm installiert, aber ich kann die IDE nicht dazu bringen, diese existierenden Dienste oder andere injizierte Objekte zu sehen. Können diese irgendwie behoben werden, so dass die Warnungen weggehen?

    
androidu 25.11.2013, 11:10
quelle

6 Antworten

23
___ answer20573749 ___

Löschen Sie den Cache für die Entwicklungsumgebung. Es sollte es beheben, wenn der Dienst wirklich existiert. Navigiere zu deinem Projektverzeichnis im Terminal und tippe:

%code%

    
___ qstntxt ___

Ich habe das Symfony2-Plugin für Phpstorm installiert, aber ich kann die IDE nicht dazu bringen, diese existierenden Dienste oder andere injizierte Objekte zu sehen. Können diese irgendwie behoben werden, so dass die Warnungen weggehen?

    
___ answer20573713 ___

Überprüfen Sie, ob Ihr Plugin die neueste Version hat. Ich weiß, dass frühere Versionen des Plugins die Dienste nicht automatisch auflösten.

Andernfalls können Sie Folgendes hinzufügen, um der IDE mitzuteilen, welcher Variablentyp %code% ist:

%Vor%

Dadurch erhalten Sie automatische Vervollständigungen, wenn Sie etwas wie " %code% " eingeben.

    
___ answer32391816 ___

Schließlich habe ich dank der @googol-Hilfe eine Möglichkeit gefunden, Services-Definitionsdateien in benutzerdefinierten Pfaden mit einem YML-Format anzugeben:

Sie müssen nur die %code% -Datei einschließlich des folgenden Tags erstellen oder ändern: %code%

Du musst den PhpStorm neu starten und das war's! :)

Hier haben Sie meine vollständige %code% Datei als Beispiel:

%code%

Und hier haben Sie eine Feature-Anfrage, um die Möglichkeit hinzuzufügen, diese benutzerdefinierte Pfad-Service-Definition über die Plugin-UI-Einstellungen hinzuzufügen, anstatt die Konfigurationsdatei manuell bearbeiten zu müssen: Ссылка

    
___ answer20981042 ___

Wenn der Service in XML und nicht in YAML definiert ist, wird die automatische Vervollständigung sofort ausgeführt, ohne dass die @var-Annotation verwendet werden muss.

Sie können diese Beispieldefinition ausprobieren, die Ihnen die automatische Vervollständigung bietet, wenn Sie einen der definierten Dienste verwenden möchten.

%Vor%

)

    
___ tag123symfony ___ Symfony ist ein Open-Source-PHP-Webentwicklungsframework für PHP 5.5.9+, das sich auf einfache und schnelle Entwicklungszyklen konzentriert und hochmoderne Designmuster und Programmierphilosophien beinhaltet. Symfony sollte nicht mit Symphony CMS verwechselt werden. Dieses Tag sollte nicht für Fragen zu Symfony 1.x verwendet werden. Bitte verwenden Sie stattdessen das Symfony1-Tag. ___ answer22168954 ___

Es scheint also, dass ich mein Symfony2-Plugin nicht aktiviert habe und das war der Grund, warum nichts mit Symfony zusammenhing. Ich nahm an, dass es nach der Installation standardmäßig aktiviert war. Oh, gut

    
___ tag123phpstorm ___ JetBrains PhpStorm ist eine kommerzielle IDE für PHP, die auf JetBrains 'IntelliJ IDEA basiert. PhpStorm bietet einen intelligenten Editor für PHP, HTML, CSS und JavaScript mit Refactoring und On-The-Fly-Code-Analyse. ___ qstnhdr ___ phpstorm symfony2 fehlender Service warning ___ tag123dependencyinjection ___ Ein Entwurfsmuster, um die Kopplung zwischen Komponenten zu reduzieren, indem dynamisch in Abhängigkeiten einer Softwarekomponente injiziert wird, die es benötigt, um zu funktionieren. ___ tag123service ___ Ein Dienst ist eine ausführbare Datei mit langer Laufzeit, die bestimmte Funktionen ausführt und keine Benutzereingriffe erfordert. ___ antwort22409044 ___

Ich hatte ein ähnliches Problem und würde empfehlen, das folgende zu überprüfen ...

  1. Wie von @ Marcel vorgeschlagen, überprüfe, ob dein Symfony2-Plugin aktiviert ist ...

    1.1. Einstellungen & gt; Symfony2-Plugin

    1.2. Überprüfen Sie, ob die Pfade zu diesen Verzeichnissen korrekt sind. Aus irgendeinem Grund hatte ich zwei Symfony-Projekte in einem Projekt, so dass die Standardpfade nicht genau waren.

  1. Sie sollten überprüfen, ob der Verweis des Plugins auf Ihren Container-XML-Code korrekt ist, standardmäßig lautet er "app \ cache \ dev \ appDevDebugProjectContainer.xml", da Sie sehen können, dass meins aktualisiert werden muss und Sie den Pfad sehen können jetzt "EXISTS", hieß es "ERROR" vor

    2.1. Einstellungen & gt; Symfony2-Plugin & gt; Container

    2.2.

  2. Dann, gemäß @ Igors Vorschlag, löschen Sie Ihren Cache

___
Carlton 14.03.2014, 15:17
quelle
3

Schließlich habe ich dank der @googol-Hilfe eine Möglichkeit gefunden, Services-Definitionsdateien in benutzerdefinierten Pfaden mit einem YML-Format anzugeben:

Sie müssen nur die .idea/symfony2.xml -Datei einschließlich des folgenden Tags erstellen oder ändern: xml <option name="containerFiles"> <list> <container_file path="custom/path/to/your/services_definition.yml" /> </list> </option>

Du musst den PhpStorm neu starten und das war's! :)

Hier haben Sie meine vollständige symfony2.xml Datei als Beispiel:

xml <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Symfony2PluginSettings"> <option name="pluginEnabled" value="true" /> <option name="twigAnnotateTemplate" value="false" /> <option name="twigAnnotateAsset" value="false" /> <option name="twigAnnotateAssetTags" value="false" /> <option name="twigAnnotateRoute" value="false" /> <option name="twigAnnotateTranslation" value="false" /> <option name="phpAnnotateTemplate" value="false" /> <option name="phpAnnotateService" value="false" /> <option name="phpAnnotateRoute" value="false" /> <option name="phpAnnotateTemplateAnnotation" value="false" /> <option name="phpAnnotateTranslation" value="false" /> <option name="phpHighlightServices" value="true" /> <option name="codeFoldingTwigRoute" value="false" /> <option name="codeFoldingTwigTemplate" value="false" /> <option name="codeFoldingTwigConstant" value="false" /> <option name="containerFiles"> <list> <container_file path="custom/path/to/your/services_definition.yml" /> </list> </option> </component> </project>

Und hier haben Sie eine Feature-Anfrage, um die Möglichkeit hinzuzufügen, diese benutzerdefinierte Pfad-Service-Definition über die Plugin-UI-Einstellungen hinzuzufügen, anstatt die Konfigurationsdatei manuell bearbeiten zu müssen: Ссылка

    
Javier Ferrer González 04.09.2015 06:51
quelle
1

Löschen Sie den Cache für die Entwicklungsumgebung. Es sollte es beheben, wenn der Dienst wirklich existiert. Navigiere zu deinem Projektverzeichnis im Terminal und tippe:

app/console ca:c

    
Igor Pantović 13.12.2013 18:43
quelle
0

Überprüfen Sie, ob Ihr Plugin die neueste Version hat. Ich weiß, dass frühere Versionen des Plugins die Dienste nicht automatisch auflösten.

Andernfalls können Sie Folgendes hinzufügen, um der IDE mitzuteilen, welcher Variablentyp $exportHelper ist:

%Vor%

Dadurch erhalten Sie automatische Vervollständigungen, wenn Sie etwas wie " $exportHelper-> " eingeben.

    
jayem 13.12.2013 18:41
quelle
0

Wenn der Service in XML und nicht in YAML definiert ist, wird die automatische Vervollständigung sofort ausgeführt, ohne dass die @var-Annotation verwendet werden muss.

Sie können diese Beispieldefinition ausprobieren, die Ihnen die automatische Vervollständigung bietet, wenn Sie einen der definierten Dienste verwenden möchten.

%Vor%

)

    
user3111988 07.01.2014 20:18
quelle
0

Es scheint also, dass ich mein Symfony2-Plugin nicht aktiviert habe und das war der Grund, warum nichts mit Symfony zusammenhing. Ich nahm an, dass es nach der Installation standardmäßig aktiviert war. Oh, gut

    
androidu 04.03.2014 10:14
quelle