2016-08-10 5 views
0

Ich habe ein bestehendes PHP-Webprojekt, das unter XAMPP läuft und es vor der Bereitstellung aufgeräumt hat, um es sicherer und einfacher zu warten. Einer dieser Schritte war eine Schlüsselvariable in eine Datei config.php PHP Site Templates ähnlich wiePHP-Pfad zu config.php definieren

ich die Datei config.php im Ressourcen-Ordner abgelegt haben, sich zu bewegen wie hier

enter image description here gezeigt

ich jetzt versuchen, Um die Konfigurationsdatei wie folgt einzuschließen

Das Ergebnis ist, dass die TEMPLATES_PATH-Definition nicht gefunden wird. Wenn ich jetzt die config.php-Datei in das Root-Verzeichnis (htdocs) bewegen, ist, dass das gleiche Niveau wie die Datei index.php und die Include ändern

include 'config.php'; 
echo ("Template path is ".TEMPLATES_PATH); 

TEMPLATES_PATH definiert ist und die Website funktioniert.

Ich habe fast jede Variante absoluter Pfade vergeblich ausprobiert und so deutet dies wohl auf ein grundsätzliches Unverständnis zu den ein oder anderen Aspekten von PHP-Pfadstrukturen hin, die ich nicht erfasst habe und so einen Einblick in diese geben würde sehr geschätzt.

Antwort

0

versuchen

include __DIR__ . '/resources/config.php';

By the way, mit Komponist eine bessere Wahl ist!

"autoload": { 
    "files": ["/resources/config.php"] 
} 
+0

Danke, aber ich hatte alle diese versucht. Dies hat das gleiche Verhalten wie oben. Wenn ich das obige auf "include __DIR__. '/config.php'" ändere, funktioniert es wie erwartet. –

+0

@Alex Ich denke, Sie sollten ein neues Bild einschließlich der index.php Datei –

+0

Vielen Dank. Ja, ich habe das gerade getan. –

0

Nun, hier ist die Antwort auf das Geheimnis. Aber zuerst Danke für all die, die versucht haben zu helfen.

Wenn ich den Inhalt der Datei config.php die Definition von `

define("TEMPLATES_PATH", realpath(dirname(__FILE__) . 'resources/templates'));` 

hätte geschrieben hatte, als inkorrekt ausgemacht. Der Dateipfad für die Datei config.php ist relativ zur Datei, nicht zur Verzeichnisstruktur. Durch Verschieben der Datei in das Stammverzeichnis konnte die obige Definition also funktionieren, aber im Ressourcenordner wurde das Ressourcenverzeichnis überspezifiziert. Die Lösung besteht darin, sicherzustellen, dass die Spezifikationen in der Datei config.php in Bezug auf den Speicherort dieser Datei innerhalb des Projekts sind; daher die Änderung der oben:

define("TEMPLATES_PATH", realpath(dirname(__FILE__) . '/templates')); 

behebt das Problem.

Verwandte Themen