Position actuelle: Accueil> Derniers articles> Utilisez get_include_path () pour implémenter l'importation de fichiers croisés avec set_include_path ()

Utilisez get_include_path () pour implémenter l'importation de fichiers croisés avec set_include_path ()

gitbox 2025-05-26

Dans le développement de PHP, la structure du projet contient généralement plusieurs sous-répertoires et l'introduction et la gestion des fichiers se compliquent. Pour éviter d'introduire des fichiers à l'aide d'un grand nombre de chemins relatifs, PHP fournit deux fonctions très pratiques get_include_path () et set_include_path () , qui peuvent nous aider à implémenter l'importation et la gestion des fichiers entre les répertoires.

Cet article présentera en détail les fonctions et les usages de ces deux fonctions et utilisera des exemples pour illustrer comment gérer efficacement l'introduction de fichiers interdirectes.

1. Le concept d'inclure_path

include_path est une option de configuration de PHP, qui spécifie la liste des chemins des chemins que PHP recherche des fichiers lors de l'exécution inclut , requier et d'autres instructions. La définition d'un incluse raisonnable peut simplifier considérablement le code lorsque vous ne souhaitez pas rédiger des chemins relatifs complexes, ou lorsque le même fichier est référencé à plusieurs endroits.

2. Les fonctions de get_include_path () et set_include_path ()

  • get_include_path ()
    Renvoie la valeur de configuration include_path de l'exécution PHP actuelle.

  • set_include_path (String $ new_include_path)
    Définissez l'inclusion_path de l'exécution PHP actuelle et remplacez-le par la nouvelle chaîne de chemin.

3. Utilisez des exemples

Supposons que notre structure de répertoire de projet soit la suivante:

 /project
    /libs
        helper.php
    /modules
        moduleA.php
    index.php

Lorsque Helper.php est quelques fonctions publiques, modulea.php doit se référer à Helper.php et index.php est le fichier d'entrée.

Si vous utilisez directement une référence de chemin relatif:

 // moduleA.php
include '../libs/helper.php';

Lorsque le chemin du fichier change, le chemin de référence doit également être modifié, ce qui est plus lourd.

1. Set inclut_path

Dans index.php , nous pouvons définir l'includ_path pour permettre à PHP de trouver automatiquement des fichiers dans le répertoire spécifié:

 <?php
// index.php
// Obtenez le actuel include_path
$current_path = get_include_path();

// Nouveau /libs Répertoire de include_path milieu
$new_path = $current_path . PATH_SEPARATOR . __DIR__ . '/libs';

// En créer un nouveau include_path
set_include_path($new_path);

// Après cela, vous pouvez directement moduleA.php milieu include 'helper.php',Pas besoin d&#39;écrire des chemins relatifs
?>

2. Importez directement dans le fichier du module

 <?php
// moduleA.php
include 'helper.php';  // PHP Sera ici include_path milieu寻找 helper.php
?>

3. Test réel

Écrivez une fonction simple dans helper.php :

 <?php
// helper.php
function greet($name) {
    return "Hello, $name!";
}
?>

Dans modulea.php :

 <?php
include 'helper.php';
echo greet('World');
?>

Exécuter index.php , PHP trouvera Helper.php dans le répertoire / libs car il définit l'inclusion_path et l'appellera avec succès.

4. Choses à noter

  1. Plusieurs séparateurs de chemin <br> Utilisez un demi-colon ( ; ) sous Windows et Colon ( :) pour Linux / Unix, mais le PHP constant path_separator s'adaptera automatiquement, et il est recommandé de l'utiliser.

  2. Chemin relatif et chemin absolu <br> Il est recommandé d'utiliser des chemins absolus (tels que __dir__. '/ Libs' ) pour éviter les erreurs de résolution de chemin.

  3. Paramètres dynamiques vs PHP.ini Configuration <br> Vous pouvez également configurer l'includ_path directement dans php.ini , mais les paramètres dynamiques du projet sont plus flexibles.

  4. Considérations de sécurité <br> Évitez d'ajouter des chemins non fiables pour inclure_path pour éviter que le code ne soit injecté ou contenant des fichiers malveillants.

5. Résumé

  • Utilisez get_include_path () pour obtenir le chemin de recherche actuel.

  • Ajoutez un répertoire pour inclure_path via set_include_path () pour implémenter l'introduction du fichier transversal.

  • En utilisant l'inclure ou l'exigence , il n'est pas nécessaire d'écrire des chemins relatifs complexes et le code est plus clair et plus facile à entretenir.

  • Utilisez-le conjointement avec des chemins absolus pour vous assurer que le fichier peut être trouvé avec précision.

Lien de référence