亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
Pourquoi __DIR__ est meilleur que dirname(__FILE__)
Plus propre, plus s?r et plus prévisible
L'autofacteur le rendait moins nécessaire - mais toujours pertinent
Résumé des meilleures pratiques
Maison développement back-end tutoriel php De __file__ à __dir__: un changement de meilleure pratique PHP moderne

De __file__ à __dir__: un changement de meilleure pratique PHP moderne

Aug 01, 2025 am 07:39 AM
PHP Magic Constants

L'utilisation de __dir__ est meilleure que Dirname (__ File__), car __dir__ est plus simple, plus s?r et plus efficace. 1. __Dir__ est une constante magique introduite dans PHP 5.3, qui renvoie directement le chemin de répertoire absolu du fichier actuel sans appels de fonction; 2. Comparé à Dirname (__ Fichier__), il réduit l'analyse des cha?nes et évite les erreurs de couture de chemin potentielles; 3. Il est recommandé d'utiliser __dir__ pour construire des chemins relatifs, tels que __dir__. '/config.php'; 4. Vous pouvez utiliser dirname (__ dir__); 5. Bien que le chargement automatique du compositeur réduit le besoin d'introduction manuelle, __dir__ est toujours largement utilisé dans les fichiers de configuration, les définitions constantes et les fichiers de démarrage; 6. Les meilleures pratiques comprennent l'évitement de __file__ pour l'analyse des répertoires, la hiérarchisation automatique du chargement automatique et la considération d'outils de traitement de chemin plus robustes. Par conséquent, vous devez cesser d'utiliser Dirname (__ File__) et utiliser __dir__ à la place pour améliorer la lisibilité et la maintenance du code.

De __file__ à __dir__: un changement de meilleure pratique PHP moderne

L'utilisation __FILE__ et __DIR__ en php peut sembler être un petit détail, mais le passage de __FILE__ à __DIR__ reflète une évolution plus large vers un code plus propre et plus maintenable - une meilleure pratique PHP moderne.

De retour dans les projets PHP plus anciens (en particulier le pré-PHP 5.3 ou avant que les normes PSR ne deviennent généralisées), vous verriez souvent du code comme ceci:

 require_once dirname (__ file__). '/config.php';
Inclure __file__. '/../lib/helpers.php';

Ce modèle était standard pour créer des chemins de fichier par rapport au script actuel. Mais c'est maladroit, sujet aux erreurs et plus difficile à lire.

Pourquoi __DIR__ est meilleur que dirname(__FILE__)

En commen?ant par PHP 5.3, __DIR__ a été introduit comme une constante magique qui renvoie le répertoire du fichier actuel - aucun appel de fonction nécessaire.

Alors ceci:

 dirname (__ fichier__)

devient simplement:

 __Dir__

Cela signifie:

 require_once dirname (__ file__). '/config.php';

peut maintenant être écrit comme:

 require_once __dir__. '/config.php';

Il est plus court, plus clair et légèrement plus efficace (pas d'appel de fonction).

Plus propre, plus s?r et plus prévisible

L'utilisation de __DIR__ supprime l'ambigu?té. dirname(__FILE__) s'appuie sur un appel de fonction pour analyser une cha?ne qui, bien que fiable dans la plupart des cas, ajoute une couche inutile. __DIR__ est résolu à l'heure de la compilation et vous donne toujours le chemin absolu vers le répertoire - pas de manipulation de cordes, pas de cas de bord.

Considérez également ce bogue subtil:

 __DéPOSER__ . '/../config.php' // Oops! Slash manquant? Résultat: '/file.php../config.php'

Mais avec __DIR__ , vous partez d'un chemin de répertoire connu:

 __Dir__. '/../config.php' // beaucoup plus clair et plus facile à raisonner

Encore mieux? Utilisez realpath() ou dirname(__DIR__) pour les répertoires parents d'une manière plus propre:

 require_once dirname (__ dir__). ?/ vendeur/autoload.php?;

Ceci est particulièrement courant dans les fichiers d'amor?age ou les points d'entrée comme public/index.php .

L'autofacteur le rendait moins nécessaire - mais toujours pertinent

Avec le PHP moderne à l'aide de composer et de mise à jour PSR-4, les instructions include ou require sont beaucoup moins courantes. Vous avez rarement besoin de charger manuellement les fichiers de classe.

Cependant, il existe encore des cas d'utilisation valides pour __DIR__ :

  • Chargement des fichiers de configuration
  • Configuration des constantes pour les chemins
  • Enregistrement des plugins ou des modules dans un répertoire
  • Batiment des chemins d'actifs dans les bootstraps CLI ou Framework

Exemple à partir d'un index.php réel.php:

 définir ('app_root', __dir__);
require_once __dir__. '/../vendor/autoload.php';
$ config = require __dir__. '/config/app.php';

Ces modèles sont toujours à jour - juste plus propres avec __DIR__ .

Résumé des meilleures pratiques

  • ? Utilisez __DIR__ au lieu de dirname(__FILE__) - c'est plus court et plus s?r
  • ?Prefer Autoloading sur require manuelles lorsque cela est possible
  • ? Utilisez dirname(__DIR__) pour référencer les répertoires des parents (commun en public / sous-dossiers)
  • ? évitez les chemins de main dans la cha?ne lorsque des outils comme pathinfo() ou les composants filesystem existent
  • ? N'utilisez pas __FILE__ pour la résolution du répertoire - c'est dépassé à cet effet

Fondamentalement, si vous tapez toujours dirname(__FILE__) , il est temps de changer. __DIR__ existe depuis plus d'une décennie - ce n'est pas "nouveau", mais il fait partie de l'écriture de PHP moderne et lisible.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Mastering Relative Chemins: La puissance de __dir__ et __file__ Mastering Relative Chemins: La puissance de __dir__ et __file__ Jul 30, 2025 am 05:35 AM

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

Comment les constantes magiques suralimentent vos architectures basées sur les traits Comment les constantes magiques suralimentent vos architectures basées sur les traits Jul 29, 2025 am 04:07 AM

Dans l'architecture basée sur les traits, les constantes magiques ne sont pas des anti-motifs, mais peuvent être utilisées comme marqueurs de temps de compilation ou invites d'optimisation pour la conception intentionnelle. 1. Les constantes magiques peuvent être utilisées comme commutateurs de version, telles que la distinction du comportement de sérialisation par le biais de Constursion: U8, afin que le code en aval puisse être compilé en fonction des conditions de version; 2. Il peut être optimisé et distribué dynamiquement en tant que balises, telles que l'allocation de constantes de balises uniques aux implémentations de trait, atteignant la correspondance rapide du chemin et peut être éliminée par le compilateur en ligne; 3. Il peut remplacer RTTI pour fournir une distinction de type léger, tel que la génération d'empreintes digitales de type via le hachage de compilation pour éviter les informations sur les informations de type d'exécution; 4. Il est nécessaire d'éviter la ?magie? réelle lors de l'utiliser, et doit être unifiée, entièrement documentée et la priorité doit être donnée à l'utilisation de drapeaux enum ou bits pour améliorer la lisibilité, comme l'utilisation de l'énumération

Déboggage précis avec __line__, __file__ et __function__ Déboggage précis avec __line__, __file__ et __function__ Jul 29, 2025 am 03:21 AM

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

Batiment Autoloaders Bulletproof: une plongée profonde dans la constante __dir__ Batiment Autoloaders Bulletproof: une plongée profonde dans la constante __dir__ Jul 31, 2025 pm 12:47 PM

DIRISESSEntialforBuildingReliablePhpautoloAdersBecauseitProvideSastable, AbsolutepathTothecurrent'sDirectory, assurant un objet de basse

La magie contextuelle de __trait__: comment elle se comporte à l'intérieur des classes La magie contextuelle de __trait__: comment elle se comporte à l'intérieur des classes Jul 29, 2025 am 04:31 AM

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

Métaprogrammation dynamique avec __class__, __Method__ et __Namespace__ Métaprogrammation dynamique avec __class__, __Method__ et __Namespace__ Aug 01, 2025 am 07:48 AM

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

Amélioration de votre stratégie de journalisation des erreurs avec des constantes magiques contextuelles Amélioration de votre stratégie de journalisation des erreurs avec des constantes magiques contextuelles Aug 01, 2025 am 07:47 AM

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

Constantes magiques démystifiées: comportement dans les fonctions et fermetures anonymes Constantes magiques démystifiées: comportement dans les fonctions et fermetures anonymes Jul 29, 2025 am 04:41 AM

MagicConstantsInphpareresolveDatCompileTimeBasedOnSourcecodeLocation, NotruntimeContext.2.InsideanymousFunctions, FonctionReturnsanemptyStringBecauseClosureslackaname.3.

See all articles