PHPStorm- und Magic-Methoden
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!
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:
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)
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: