Frage

Ich verwende PHPStorm und habe eine Klasse geschrieben, die die SimpleXML-Klasse nutzt.Alles ist in Ordnung, außer wenn ich eine XML-Zeichenfolge durchlaufe, erhalte ich Warnungen „Undefinierte Eigenschaft“.

$xml = simplexml_load_string($string); //Returns SimpleXML Element

echo $xml->childElement; //PHPStorm reports "Undefined Property

Ich glaube, das liegt daran, dass die magischen Eigenschaften in PHPStorm nicht richtig definiert sind.Kennt jemand eine nette kleine Lösung?Es nervt mich, weil ich pedantisch bin, wenn es darum geht, schönen, sauberen Code (und IDE) zu haben, und wenn bei einer Klasse Warnungen auftauchen, ist das einfach schrecklich!

War es hilfreich?

Lösung 2

Ich glaube, ich habe es gelöst.Wenn ich die Knoten in geschweiften Klammern als Zeichenfolgen einkapsele, ignoriert PHPStorm diese.

echo $xml->{'Parent'}->{'ChildElement'};

Dies hat den Vorteil, dass es konsistent ist, wenn Sie beispielsweise auf ein XML-Tag mit einem Bindestrich stoßen. $xml->{'Parent-Node'}

Andere Tipps

Ich habe bisher keine Work-Around gefunden, sondern nur einen Typ mit den betreffenden Eigenschaften und Var-Typ-Tinting der Variablen erstellen: generasacodicetagpre.

Natürlich ist dies nicht immer anwendbar / praktikabel, es gibt einen Cheat mit stdClass: generasacodicetagpre.

Sie müssen keinen konkreten Typ erklären, um den Hinweis verschwinden zu lassen.

Es gibt auch andere Mängel, Sie werden immer noch in Fragen mit foreach z., wo Sie erneut var-type-Tipps benötigen.

, um die nervige Warnung loszuwerden, die Sie mehrere Optionen haben:

1) klar und lesbar: Definieren Sie eine Stub-Klasse irgendwo in Ihrem Projekt: generasacodicetagpre.

Sie müssen den Unterricht nicht benötigen, habe es einfach in der Projektordner für IDE zu Index. Verwenden Sie dann einfach phpdoc, um diese Klasse mit Simplexmlelement zu "mischen": generasacodicetagpre.

Es ist eine gute Praxis: Sie haben eine ordnungsgemäß definierte und lesbare PHP-Darstellung Ihres XML, das hilft beim Code Autovervollständigung und entfernen Sie die Warnung.

2) unterdrücken Sie die Warnung in der Codezeile: generasacodicetagpre.

alt + Geben Sie auf die Warnung ein -> Inspektion ... Optionen -> Unterdrückung für Anweisung

nicht sehr sauber, aber die Inspektion hilft Ihnen beim Rest des Projekts.

3) Deaktivieren Sie die gesamte Inspektion.

Ich denke, es ist eine schlechte Praxis, aber einige Inspektionen können demessen sein.

Da phpstorm Ihren Code nicht kompiliert "in der FLY" ist es nicht, was in "$ string" ist, wenn Sie diese Zeichenfolge aus einer externen Quelle geladen haben.

Sie können das Plugin-Repository ansehen, wenn es etwas ist, das Ihnen hilft:

http://plugins.intellij.net/?webide

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top