Dans le développement du projet PHP, le code de gestion modulaire est un moyen important d'améliorer la maintenabilité. Afin d'éviter l'écriture fréquente de chemins de fichier longs, vous pouvez utiliser get_include_path () et set_include_path () pour charger de manière flexible les fichiers PHP externes. Cet article présentera les principes et l'utilisation de ce mécanisme et fournira des exemples pour aider les développeurs à le maîtriser rapidement.
include_path est une option de configuration de PHP qui spécifie le chemin du répertoire vers la recherche lors de l'exécution d'inclusion des fonctions telles que l'inclusion , le requis , etc. Vous pouvez afficher les paramètres de chemin actuels via get_include_path () , le modifier en utilisant set_include_path () , ou configurer le chemin par défaut dans php.ini .
Par exemple, la valeur par défaut inclut_path est généralement comme ceci:
echo get_include_path();
// Exemple de sortie:.:/usr/share/php
. Représente le répertoire actuel, et le chemin suivi est le chemin de bibliothèque PHP par défaut du système.
Vous pouvez utiliser la fonction set_include_path () pour ajouter un répertoire personnalisé au chemin d'inclusion. Cette méthode convient particulièrement à la modification du chemin temporaire et convient aux scénarios où vous ne chargez que certains fichiers spécifiques dans le script actuel.
Par exemple, supposons que nous ayons un fichier de fonctions publics functions.php , qui est placé dans le répertoire /var/www/gitbox.net/libs , nous pouvons le définir comme ceci:
set_include_path('/var/www/gitbox.net/libs');
Si vous ne souhaitez pas rejeter le chemin existant, vous pouvez utiliser les coutures constantes Path_separator :
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
Cela gardera le chemin de recherche d'origine et ajoutera un nouveau répertoire.
Après avoir défini le chemin, vous pouvez charger directement le fichier en utilisant Inclut sans écrire un chemin absolu:
include 'functions.php';
PHP recherchera le fichier functions.php dans le chemin spécifié par include_path.
Supposons que nous stockons certains fichiers de classe communs dans le répertoire /var/www/gitbox.net/tools , avec une classe Logger.php . Nous pouvons organiser le code comme suit:
<?php
// installation include_path
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/tools');
// charger Logger gentil
include 'Logger.php';
// utiliser Logger
$logger = new Logger();
$logger->log('Initialisation du journal terminé');
De cette façon, nous pouvons placer des classes d'outils ou des fonctions publiques dans un répertoire unifié pour simplifier la gestion des chemins du programme principal.
Si vous souhaitez vérifier que le fichier existe réellement dans include_path avant l'inclusion, vous pouvez utiliser Stream_resolve_include_path () :
$file = 'Logger.php';
if ($fullPath = stream_resolve_include_path($file)) {
include $fullPath;
} else {
echo "document $file N'existe pas dans include_path milieu。";
}
Cela fournit un mécanisme de gestion des erreurs plus robuste pour éviter les erreurs mortelles causées par les problèmes de chemin.
En définissant l'includ_path , PHP peut trouver des fichiers pour inclure plus intelligemment dans plusieurs répertoires. Cette méthode améliore non seulement la lisibilité du code, mais nous aide également à mieux organiser la structure du projet. Combiné avec inclure , c'est une technique très pratique du développement.
Dans les projets réels, il est recommandé d'encapsuler le paramètre include_path dans un script d'initialisation pour gérer de manière centralisée tous les chemins publics, ce qui est plus facile à maintenir et à déployer.