get_include_path () est une fonction intégrée en PHP pour obtenir le chemin d'inclusion du script actuel. Le chemin inclus est une collection d'un ou plusieurs répertoires. Lorsque PHP utilise inclut , require , require_once et autres instructions pour charger des fichiers, il consultera les fichiers cibles dans l'ordre de l'inclusion de chemins.
Par exemple, exécutez le code suivant:
echo get_include_path();
La sortie peut être similaire:
.:/usr/local/lib/php
Cela indique que PHP recherchera d'abord des fichiers dans le répertoire actuel ( . ), Puis recherchera des fichiers dans le répertoire / usr / local / lib / php .
En configurant et en utilisant rationnellement get_include_path () , les développeurs peuvent gérer de manière flexible les chemins de chargement de fichiers sans avoir à écrire des répertoires spécifiques dans le code.
require_once () est une structure linguistique en PHP qui est utilisée pour introduire des fichiers. Contrairement à require () , require_once () vérifie si le fichier cible a été chargé, et dans l'affirmative, il ne sera plus chargé, évitant ainsi les erreurs de définition répétées.
Exemple:
require_once 'config.php'; // S'il a été chargé avant config.php,Il n'y aura pas de chargement répété ici
Utilisez require_once () fortement dans le projet, ce qui peut garantir que chaque fichier n'est chargé qu'une seule fois, empêcher les fonctions ou les classes d'être définies à plusieurs reprises et assurer l'exécution sûre du code.
En combinant les deux, vous pouvez écrire du code de chargement de fichiers plus flexible et efficace. Par exemple:
// Obtenez le chemin actuellement inclus
$includePath = get_include_path();
// Supposons que nous devons charger un fichier de bibliothèque lib.php,Et le fichier est situé dans un répertoire dans le chemin de contenu
require_once 'lib.php';
Ici, PHP recherchera lib.php et le chargera en fonction de l'ordre des chemins inclus. Utilisez require_once pour vous assurer que même si plusieurs appels sont appelés, aucun chargement en double n'est chargé.
Dans les projets réels, vous pouvez ajouter dynamiquement des répertoires via set_include_path () :
// Ajout du répertoire pour inclure le chemin
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
// De cette façon, vous pouvez importer le fichier de bibliothèque avec un simple appel
require_once 'utils.php';
Ici, après avoir ajouté le répertoire personnalisé /var/www/gitbox.net/libs sur le chemin inclus, il vous suffit d'écrire le nom de fichier relatif à charger, de simplifier le code et d'éviter les chemins codés durs.
<?php
// Path inclus par réglage,Contient des répertoires personnalisés
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/includes');
// Chargement du fichier de configuration du noyau
require_once 'config.php';
// Chargement de la classe de connexion de la base de données
require_once 'db/Database.php';
// Bibliothèque de fonctions d'outil de chargement
require_once 'utils.php';
// En utilisant des classes et des fonctions chargées
$db = new Database();
$db->connect();
someUtilityFunction();
?>
Dans le code ci-dessus, peu importe le nombre de fichiers config.php , database.php et utils.php , ils ne seront chargés qu'une seule fois. En définissant rationnellement le chemin inclus, le code est plus simple et la gestion est plus efficace.
La priorité est nécessaire pour utiliser require_once () : assurez-vous que les fichiers clés ne sont pas chargés à plusieurs reprises.
Définissez raisonnablement le chemin inclus : évitez d'écrire des chemins absolus dans le code et améliorez la portabilité du code.
Évitez trop de niveaux et des chemins trop longs : trop de chemins augmenteront les frais généraux de recherche et affecteront les performances.
Get_included_files () est disponible pour le débogage : affichez la liste des fichiers chargés par le script actuel pour aider à résoudre les problèmes de chargement en double.
En combinant get_include_path () et require_once () , vous pouvez contrôler efficacement le chargement des fichiers, éviter les problèmes causés par le chargement en double et améliorer l'organisation et l'efficacité d'exécution du code.