2013-08-30 2 views
7

Not so awesome picturePHPSstorm kann einen Pfad von einer Variablen nicht analysieren?

Wie Sie sehen, gibt die erste require_once keine schwache Warnung. Letzteres tut, aber ich verstehe nicht warum. Gibt es einen Grund, warum das passiert? Die Datei existiert und enthält eine Klasse. Wenn es nützlich ist, ist dies die Dateistruktur:

-| Project 
    -| Anomius 
    - Anomius.php (This is the included file) 
    -| Sites 
    -| Foo 
     - app.php (This is the file on the image) 
+4

Ja - weil es eine Variable ist und Wert kann jederzeit geändert werden (oder kann sogar von unbekannter Quelle, z. B. DB zugewiesen werden). Verwenden Sie Konstanten wenn gewünscht, da PHPStorm Variablenwerte nicht verfolgt. – LazyOne

+0

haben Sie versucht, auf den Link "mehr ..." zu klicken? es kann beschreibender sein ... –

+0

@LazyOne Scheint so, als ob es das ist. Danke für die Info :) – RemiDG

Antwort

2

Standardmäßig speichert PHPStorm nur Variablennamen, keine Werte. Wenn Sie also $ano eingeben, erhalten Sie eine automatische Vervollständigung für $anomius, aber Sie wissen nicht, was $anomius tatsächlich enthält.

Um PhpStorm zu verstehen, wo Ihre Datei ist, versuchen Sie dies:

$anomius = "your_file.php"; 
/** @define "$anomius" "/absolute/path/to/your/php/file" */ 
require_once($anomius); 
+1

Das ist ziemlich nutzlos: Sie verwenden dort eine dynamische Variable aus einem Grund. Wenn Sie es oben deklarieren, was ist der Sinn der Verwendung einer Variablen in der erster Platz? – user3790897

+0

Ja, es ist dynamisch, aber zumindest hält es PHPStorm glücklich.Wenn das Skript ausgeführt wird, werden die Kommentare sowieso ignoriert, so dass es keine Probleme verursacht, wenn die Datei-URL anders ist. – elipoultorak

+1

So Ihre Antwort in Kürze : Verwenden Sie keine dynamische Variable für require_once Ihre Antwort ist irgendwie irreführend, denn in diesem Fall würde er nur tun: require_once ('your_file.php'). Warum würden Sie dies in eine Variable setzen, wenn yo Du weißt schon, dass es Wert ist? Es ist völliger Blödsinn. – user3790897

3

einfach die Einstellung in PhpStorm deaktivieren, die die Warnung erzeugt:

In Settings Suche nach ‚ungelöst sind:‘ die unter ist Editor>Inspections; PHP>General>Unresolved include

und deaktivieren Sie das Kontrollkästchen.

+0

Ich bevorzuge diese Lösung, weil diese Warnung in einer benutzerdefinierten "Import" -Funktion auftaucht, die relative Pfade zum Einschließen von Klassen akzeptiert, also muss man nicht nur in dieser Funktion dirname() und "__FILE__" setzen. –