Lors du développement d'applications PHP, il est souvent nécessaire d'organiser et de réutiliser des modules de code entre plusieurs répertoires. Afin d'activer les instructions telles que les instructions incluées , requises et autres pour trouver correctement ces modules, PHP fournit des fonctions get_include_path () et set_include_path () pour gérer de manière flexible les chemins inclus. Cet article présentera en détail l'utilisation de ces deux fonctions et scénarios d'application pratiques.
get_include_path () est utilisé pour obtenir les paramètres de chemin d'inclusion pour le PHP actuel. Le chemin d'inclusion est une liste des répertoires où PHP recherche les fichiers inclus.
echo get_include_path();
La sortie est similaire à ce qui suit:
.:/usr/local/lib/php
Cela signifie que PHP recherchera d'abord le fichier dans le répertoire actuel ( . ), Puis le recherchera dans / usr / local / lib / php .
Utilisez set_include_path () pour modifier le chemin d'inclusion de PHP. Cette fonction accepte une chaîne représentant une nouvelle liste de chemins, et les répertoires sont connectés par les séparateurs de chemin du système (Colons sur les systèmes UNIX / Linux : , Semicolons sur Windows ; ).
$customPath = '/var/www/html/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $customPath);
Ce code ajoute le répertoire / var / www / html / inclut le répertoire basé sur le chemin inclus existant.
Supposons que nous ayons un fichier de fonctions publics functions.php , qui est placé dans le répertoire / var / www / html / libs . Afin d'inclure ce fichier dans le programme principal, nous pouvons le faire:
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');
include 'functions.php';
En définissant le chemin d'inclusion, nous n'avons pas à utiliser des modules de référence de chemin relatifs ou absolus dans chaque fichier, améliorant la lisibilité et la maintenabilité du code.
Pour confirmer si un fichier peut être trouvé via le chemin d'inclusion actuel, vous pouvez utiliser la fonction Stream_Resolve_Include_Path () :
$file = 'config.php';
$resolvedPath = stream_resolve_include_path($file);
if ($resolvedPath !== false) {
echo "Emplacement du fichier: $resolvedPath";
} else {
echo "Le fichier ne peut être trouvé $file";
}
Il convient de noter que bien que l'inclusion et l'exigence puissent prendre en charge les emballages d'URL (tels que http: // ), cette méthode n'est généralement pas recommandée dans les environnements de production réels. Si vous souhaitez l'utiliser, vous pouvez le faire:
$url = 'http://gitbox.net/includes/config.php';
include $url;
Pour que cette inclusion distante fonctionne correctement, le paramètre Allow_URL_Include doit être activé (la valeur par défaut est désactivée pour des raisons de sécurité).
Il peut être modifié dans php.ini:
allow_url_include = On
Ou le définir dynamiquement via le code:
ini_set('allow_url_include', '1');
Utilisez get_include_path () pour afficher les paramètres actuels d'inclusion.
Utilisez set_include_path () pour ajouter ou modifier dynamiquement des chemins, ce qui le rend pratique pour la modularité du code.
Avec stream_resolve_include_path (), vous pouvez vérifier si le fichier peut être trouvé.
Bien que l'inclusion à distance soit prise en charge, elle doit être utilisée avec prudence et la gestion du chemin local doit être préférée.
En utilisant ces fonctions raisonnablement, la clarté structurelle et la maintenabilité des projets PHP peuvent être considérablement améliorées.