Wie kann ich wissen, welche umfassen wird Pfad in PHP verwendet werden?
-
03-10-2019 - |
Frage
Wenn ich phpinfo()
und Blick durch die Configuration
Kategorie unter PHP Core
laufe, sehe ich eine Richtlinie include_path
betitelte, mit einem lokalen Wert und einem Leitwert.
In diesem Fall mein lokaler Wert auf
.: ./include: ../include: /usr/share/php: /usr/share/php/smarty: /usr/share/pear
und mein Master-Wert auf
.: /usr/share/php: /usr/share/pear: /usr/share/php/pear: /usr/share/php/smarty
Der Grund, warum ich zu lernen, ich versuche, wie dies funktioniert, ist, weil es eine Datei in das System, das ich auf dem Titel Smarty.class.php
arbeite, die ich sicher, klingt sehr vertraut jemand bin, der Smarty Template-Engine verwendet.
Eine der PHP-Dateien hat Folgendes beinhaltet:
require_once("Smarty.class.php"); require_once("user_info_class.inc");
Die Datei user_info_class.inc
ist im selben Verzeichnis wie die Datei macht die ist, die ich durchaus Sinn macht, und ist die Art und Weise, dass ich immer Dateien verwiesen. Ich entschied, dass ich wollte, in demselben Verzeichnis Smarty.class.php öffnen und hatte angenommen, es wäre, aber es war nicht.
Nach einem bisschen graben tun, entdecken ich diese php_ini
Variablen und war schließlich in der Lage, die Datei in dem Verzeichnis usr/share/php/smarty/
ausfindig zu machen.
So wäre es das scheint, wenn sie ein enthält, es folgt eine Art, um zwischen den lokalen und Master-Werten für den include_path
.
Unter der Annahme, dass meine Abzüge korrekt waren so weit, kann jemand erklären, in welcher Reihenfolge PHP sucht nach den Dateien aufgenommen werden?
Lösung
The global value is basically what's set in php.ini. The local value is what's currently being used. The local value completely overwrites the master value.
According to the manual, PHP checks the paths in the order that they are specified in the include_path setting: http://php.net/manual/en/ini.core.php#ini.include-path