In der PHP -Entwicklung enthält die Projektstruktur normalerweise mehrere Unterverzeichnisse, und die Einführung und Verwaltung von Dateien wird kompliziert. Um die Einführung von Dateien mit einer großen Anzahl von relativen Pfaden zu vermeiden, bietet PHP zwei sehr praktische Funktionen get_include_path () und set_include_path () , die uns helfen können, Dateiimport und -verwaltung über Verzeichnisse hinweg zu implementieren.
In diesem Artikel werden die Funktionen und Verwendungen dieser beiden Funktionen im Detail eingeführt und Beispiele zur effizienten Verwaltung der Einführung der Cross-Verhandlungsdateien.
Include_Path ist eine Konfigurationsoption von PHP, die die Pfadliste der Pfade angibt, die PHP bei der Ausführung nach Dateien sucht, umfassen , fordern und andere Anweisungen. Das Festlegen eines vernünftigen Include_Path kann den Code erheblich vereinfachen, wenn Sie keine komplexen relativen Pfade schreiben möchten oder wenn dieselbe Datei an mehreren Stellen referenziert wird.
get_include_path ()
Gibt den Konfigurationswert include_path der aktuellen PHP -Laufzeit zurück.
set_include_path (String $ new_include_path)
Legen Sie die include_path der aktuellen PHP -Laufzeit ein und ersetzen Sie ihn durch die neue Pfadzeichenfolge.
Angenommen, unsere Projektverzeichnisstruktur lautet wie folgt:
/project
/libs
helper.php
/modules
moduleA.php
index.php
Wenn Helper.php einige öffentliche Funktionen ist, muss Modulea.php auf Helper.php beziehen, und Index.php ist die Eintragsdatei.
Wenn Sie eine relative Pfadreferenz direkt verwenden:
// moduleA.php
include '../libs/helper.php';
Wenn sich der Dateipfad ändert, muss auch der Referenzpfad geändert werden, was umständlicher ist.
In index.php können wir include_path festlegen, damit PHP Dateien automatisch im angegebenen Verzeichnis finden:
<?php
// index.php
// Holen Sie sich den aktuellen include_path
$current_path = get_include_path();
// Neu /libs Verzeichnis an include_path Mitte
$new_path = $current_path . PATH_SEPARATOR . __DIR__ . '/libs';
// Richten Sie eine neue ein include_path
set_include_path($new_path);
// Danach können Sie direkt moduleA.php Mitte include 'helper.php',Keine Notwendigkeit, relative Pfade zu schreiben
?>
<?php
// moduleA.php
include 'helper.php'; // PHP Wird hier sein include_path Mitte寻找 helper.php
?>
Schreiben Sie eine einfache Funktion in Helper.php :
<?php
// helper.php
function greet($name) {
return "Hello, $name!";
}
?>
In modulea.php :
<?php
include 'helper.php';
echo greet('World');
?>
Run Index.php run findet Helper.php im Verzeichnis /libs, da es include_path setzt und es erfolgreich nennt.
Mehrere Pfadabscheider <br> Verwenden Sie Semicolon ( ; ) unter Windows und Colon ( :) für Linux/Unix, aber der PHP Constant Path_separator wird sich automatisch anpassen und es wird empfohlen, es zu verwenden.
Relativer Weg und absoluter Pfad <br> Es wird empfohlen, absolute Pfade (wie __dir__. '/Libs' ) zu verwenden, um Fehler auf Pfadauflösung zu vermeiden.
Dynamische Einstellungen gegen php.ini -Konfiguration <br> Sie können auch include_path direkt in php.ini konfigurieren, aber die dynamischen Einstellungen im Projekt sind flexibler.
Sicherheitsüberlegungen <br> Vermeiden Sie es, nicht vertrauenswürdige Pfade hinzuzufügen , um zu verhindern, dass Code injiziert wird oder böswillige Dateien enthalten.
Verwenden Sie Get_include_path (), um den aktuellen Suchpfad zu erhalten.
Fügen Sie ein Verzeichnis hinzu, um_path über set_include_path () zu integrieren, um die Einführung von Cross-Directory-Dateien zu implementieren.
Mit Einfügen oder Anforderungen müssen keine komplexen relativen Pfade geschrieben werden, und der Code ist klarer und leichter zu warten.
Verwenden Sie es in Verbindung mit absoluten Pfaden, um sicherzustellen, dass die Datei genau gefunden werden kann.