set_include_path est une fonction intégrée PHP qui définit le chemin d'inclusion pour l'exécution du script actuel. Le chemin inclus est une liste des emplacements utilisés par PHP pour trouver des fonctions telles que l'inclusion , le requirement , le fopen , etc. Par défaut, le chemin inclus est généralement uniquement le chemin spécifié dans le répertoire ou le fichier de configuration de PHP lui-même.
Avec set_include_path , vous pouvez ajouter et remplacer dynamiquement ces chemins, réalisant ainsi une gestion flexible des fichiers.
Supposons que vous ayez plusieurs répertoires qui doivent être ajoutés au chemin d'inclusion, par exemple:
/ var / www / project / lib
/ var / www / project / modèles
/ var / www / project / assistants
Vous pouvez ajouter dynamiquement en utilisant les méthodes suivantes:
<?php
// Obtenez d'abord le chemin actuellement inclus
$currentPath = get_include_path();
// Répertoire ajouté,Pour plusieurs répertoiresPATH_SEPARATORSéparation
$newPaths = '/var/www/project/lib' . PATH_SEPARATOR .
'/var/www/project/models' . PATH_SEPARATOR .
'/var/www/project/helpers';
// Ajouter un nouveau répertoire sur le chemin existant
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);
// Résultats de la vérification
echo get_include_path();
?>
Ce code obtient d'abord le chemin actuellement inclus, puis connecte plusieurs répertoires avec le séparateur de chemin correspondant au système d'exploitation (Colon ":" sous Linux et Semicolon ";" sous Windows), et ajoute enfin le nouveau chemin vers le chemin d'origine.
Parfois, le chemin du répertoire est dynamique ou provient d'un tableau, vous pouvez utiliser la méthode suivante:
<?php
$dirs = [
'/var/www/project/lib',
'/var/www/project/models',
'/var/www/project/helpers',
];
// Obtenez le chemin actuellement inclus
$currentPath = get_include_path();
// Convertir le tableau en chaîne,utiliserPATH_SEPARATORDiviser
$newPaths = implode(PATH_SEPARATOR, $dirs);
// Définir un nouveau chemin d'inclusion,Ajout de la méthode
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);
// Afficher les résultats
echo get_include_path();
?>
De cette façon, peu importe le nombre de répertoires, ils peuvent être ajoutés de manière flexible.
Il est recommandé d'utiliser des chemins relatifs, tels que sur la base de __dir__ ou dirname (__ file__) afin que le chemin ne se trompe pas lorsque le projet est déplacé ou déployé.
<?php
$dirs = [
__DIR__ . '/lib',
__DIR__ . '/models',
__DIR__ . '/helpers',
];
set_include_path(get_include_path() . PATH_SEPARATOR . implode(PATH_SEPARATOR, $dirs));
?>
Utilisez get_include_path () pour obtenir le chemin actuel et ajouter pour éviter la réinitialisation et faire perdre certains chemins système.
En conjonction avec set_include_path , utilisez le mécanisme de chargement automatique pour simplifier le chargement du fichier de classe:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/lib');
spl_autoload_register(function($class) {
include $class . '.php';
});
?>
Si certains scripts ne modifient temporairement le chemin inclus, vous pouvez appeler restore_include_path () après l'exécution pour revenir à l'état par défaut.
<?php
// Ajouter dynamiquement plusieurs répertoires àinclude_path
$directories = [
__DIR__ . '/lib',
__DIR__ . '/models',
__DIR__ . '/helpers',
];
// Obtenez le chemin actuellement inclus
$currentIncludePath = get_include_path();
// Fusionner de nouveaux chemins
$newIncludePath = $currentIncludePath . PATH_SEPARATOR . implode(PATH_SEPARATOR, $directories);
// Définir un nouveau chemin d'inclusion
set_include_path($newIncludePath);
// Vérifier l'impression
echo "Le chemin actuellement inclus est:\n";
echo get_include_path();
?>
set_include_path est utilisé pour définir le chemin d'inclusion pour l'exécution des scripts PHP.
Utilisez Path_Separator pour vous connecter à plusieurs répertoires, compatibles avec différents systèmes d'exploitation.
Les chemins d'accès et d'ajout dynamiquement via get_include_path pour éviter d'écraser le chemin par défaut du système.
La combinaison de SPL_AUTOLOAD_REGISTER peut considérablement simplifier le chargement automatique des fichiers.
Il est recommandé d'utiliser des chemins relatifs et des tableaux de répertoires pour faciliter la gestion et la migration du projet.
En utilisant avec flexion set_include_path , le chargement du fichier de projet PHP sera plus clair et plus efficace, améliorant la maintenance du code.