


Mastering Relative Chemins: La puissance de __dir__ et __file__
Dir et les fichiers sont des constantes magiques en PHP qui peuvent résoudre efficacement les erreurs d'inclusion de fichiers causées par des chemins relatifs dans des projets complexes. 1. Le fichier renvoie le chemin complet du fichier actuel et __dir__ renvoie son répertoire; 2. Utilisez DIR pour vous assurer que l'inclusion ou l'exigence est toujours exécuté par rapport au fichier actuel pour éviter les erreurs de chemin en raison de différents scripts d'appel; 3. Il peut être utilisé pour inclure de manière fiable des fichiers, tels que require_once dir. '/../config.php'; 4. Définissez les constantes Base_DIR dans le fichier d'entrée pour unifier la gestion du chemin du projet; 5. Chargez des fichiers de configuration en toute sécurité, tels que $ config = nécessitent dir. '/config/database.php'; 6. Localisez le répertoire de fichiers de classe avec précision lors de l'enregistrement de l'autoader; 7. Utilisez le fichier pour le débogage et la journalisation, tels que error_log ("Erreur dans le fichier:". __File__); En résumé, l'utilisation rationnelle de ces deux constantes peut améliorer la portabilité, la maintenabilité et la stabilité de l'application.
L'utilisation de __DIR__
et __FILE__
peut ressembler à de petits détails en PHP, mais ce sont des outils puissants pour créer des applications portables fiables, en particulier lorsqu'ils traitent de l'inclusion des fichiers et de la navigation de répertoire. La clé réside dans la compréhension de la façon dont les chemins relatifs peuvent se briser à mesure que votre projet se développe et comment ces constantes magiques vous aident à éviter ces pièges.
Que sont __DIR__
et __FILE__
?
Ce sont des constantes magiques de PHP - des valeurs intégrées spéciales qui changent selon leur utilisation.
-
__FILE__
: Renvoie le chemin complet du fichier PHP actuel, y compris le nom de fichier.- Exemple:
/var/www/project/includes/config.php
- Exemple:
-
__DIR__
: Renvoie le répertoire du fichier actuel (essentiellementdirname(__FILE__)
).- Exemple:
/var/www/project/includes
- Exemple:
Ils sont résolus au moment de la compilation , ils sont donc rapides et fiables. Contrairement aux chemins relatifs comme ../includes/config.php
, ils pointent toujours vers l'emplacement correct, quelle que soit la façon dont le script a été appelé.
Pourquoi les chemins relatifs échouent sans eux
Imaginez que vous avez une structure de script comme ceci:
projet/ ├fiques index.php ├fiques │ └fique └til inclut / └fiques aux aides.php
Supposons maintenant que helpers.php
sont inclus dans index.php
et dashboard.php
. Si vous utilisez un chemin relatif à l'intérieur helpers.php
comme:
inclure «database.php»;
Il recherchera database.php
par rapport à l'endroit où se trouve le script d'appel - pas où vit helpers.php
. Donc:
- From
index.php
: regarde dansproject/
- From
dashboard.php
: regarde dansproject/admin/
Cette incohérence provoque des erreurs. Le correctif? Utiliser __DIR__
:
Inclure __dir__. '/database.php';
Maintenant, il semble toujours dans le dossier includes/
- extrêmement là où vous vous attendez.
Utilisations pratiques de __DIR__
et __FILE__
1. Inclusions de fichiers fiables
Utilisez toujours __DIR__
lors de l'inclusion de fichiers par rapport au fichier actuel:
require_once __dir__. '/../config.php'; require_once __dir__. «/ vendeur/autoload.php»;
Cela rend votre code portable. Peu importe la profondeur de la pile d'exécution, les chemins restent précis.
2. Définition des constantes d'application
Définissez un chemin de base pour votre application en utilisant __DIR__
dans votre point d'entrée (comme index.php
):
Définir ('base_dir', __dir__. '/');
Ensuite, utilisez BASE_DIR
tout au long de votre application:
nécessitent une base_dir. «inclut / functions.php»;
Cela centralise la logique de chemin et évite les répétitions ../
grimper.
3. Renvoi de données à partir de fichiers (par exemple, fichiers config)
Il est courant d'avoir des fichiers de configuration qui renvoient les données:
// config / database.php Retour [ 'host' => 'localhost', 'name' => 'myapp' ]]
Pour le charger en toute sécurité de n'importe où:
$ config = require __dir__. '/config/database.php';
Encore une fois, __DIR__
garantit que vous chargez du bon endroit.
4. Enregistrement des autoloadeurs
Lorsque vous configurez PSR-4 ou Autoloaders personnalisés, utilisez __DIR__
pour localiser votre src/
ou classes/
dossier:
spl_autoload_register (fonction ($ class) { $ base_dir = __dir__. '/ src /'; $ file = $ base_dir. str_replace ('\\', '/', $ class). '.php'; if (file_exists ($ file)) { exiger un fichier $; } });
Cela fait fonctionner votre autoloader, peu importe où il est invoqué.
Bonus: __FILE__
pour le débogage et la journalisation
__FILE__
est utile lorsque vous devez vous connecter ou afficher où quelque chose s'est produit:
error_log ("Erreur dans le fichier:". __file__);
Ou dans les aides de débogage:
Echo "En cours d'exécution:". __DÉPOSER__;
Il est également utilisé dans les plugins ou les thèmes (comme dans WordPress) pour obtenir le chemin du plugin actuel:
Plugin_dir_path (__ File__) // Exemple WordPress
Fondamentalement, __DIR__
et __FILE__
éliminent les suppositions. Ils rendent vos chemins de fichier prévisibles, votre application plus maintenable et le déploiement plus fluide. Une fois que vous commencez à utiliser __DIR__
cohérente pour les inclusions locales, vous cesserez de vous soucier de «Dans quel niveau suis-je?» - et c'est le vrai pouvoir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

TraitisamagicConstantinPhpThatalwayways est en train de voir le nom de thèse

DIRISESSEntialforBuildingReliablePhpautoloAdersBecauseitProvideSastable, AbsolutepathTothecurrent'sDirectory, assurant un objet de basse

L'utilisation de __dir__ peut résoudre le problème de chemin dans les applications PHP car il fournit le chemin absolu vers le répertoire où se trouve le fichier actuel, en évitant d'incohérence entre les chemins relatifs dans différents contextes d'exécution. 1.DIR__ Renvoie toujours le chemin absolu du répertoire du fichier actuel pour assurer le chemin précis lorsque le fichier est inclus; 2. Utilisez __dir. '/ .. / config.php' et d'autres méthodes pour réaliser des références de fichiers fiables et ne sont pas affectées par la méthode d'appel; 3. Définissez des constantes telles que App_root, config_path dans le fichier d'entrée pour améliorer la maintenabilité de la gestion des chemins; 4. Utiliser __dir__ pour le chargement automatique et l'enregistrement des modules pour assurer les bons chemins de classe et de service; 5. Évitez la dépendance sur $ _Server ['Document

Dir et les fichiers sont des constantes magiques dans PHP, qui peuvent résoudre efficacement les erreurs d'inclusion de fichiers causées par des chemins relatifs dans des projets complexes. 1.File renvoie le chemin complet du fichier actuel et __dir__ renvoie son répertoire; 2. Utilisez DIR pour vous assurer que l'inclusion ou l'exigence est toujours exécuté par rapport au fichier actuel, en évitant les erreurs de chemin causées par différents scripts d'appel; 3. Il peut être utilisé pour inclure de manière fiable des fichiers, tels que require_oncedir. '/ .. / config.php'; 4. Définissez les constantes Base_DIR dans le fichier d'entrée pour unifier la gestion du chemin du projet; 5. Chargez des fichiers de configuration en toute sécurité, tels que $ config = requiredir. '/ Config / dat

Classe __, __ Méthode __ et__NamespaceAlephpmagicConstants de la propriété de la commande

ThesoSteffiveDebuggingTrickinc / c isusingthebuilt-inmacros__file __, __ ligne __ et__function__togetpreciseerractex

ContextualMagicConstantsaRenamed, significatif Identificateurs pour leprovideclearcontextInERRORLOGS, Suchasuser_Login_Attemptorpayment_Processing.2.TheyProbeDebuggingByreplacingVagueErrorMessages avec une recherche, searchableConTex

L'utilisation de __Namespace__ est cruciale dans l'architecture du plug-in PHP, car elle peut renvoyer dynamiquement l'espace de noms actuel pour s'assurer que le code est toujours valide après avoir été déplacé ou renommé; ① Il prend en charge l'instanciation de classe dynamique et l'analyse de rappel, de sorte que le processeur d'événements enregistré par le plug-in est toujours correct lorsque l'espace de noms change; ② Il simplifie le chargement automatique et la découverte de classe et combine la norme PSR-4, le système de base peut trouver avec précision les classes bootstrap dans le plug-in; ③ Évitez les chaînes à code dur, améliorez la maintenabilité du code et réduisez le risque de reconstruction; ④ Il peut être combiné avec __class__, __Method__, etc. pour le débogage; En résumé, __Namespace__ améliore la portabilité, la maintenabilité et la cohérence du système de plug-in et est un système évolutif pour construire un système évolutif.
