Maison  >  Article  >  développement back-end  >  Explication détaillée et application de l'espace de noms PHP

Explication détaillée et application de l'espace de noms PHP

*文
*文original
2017-12-25 12:01:201997parcourir

De nombreux novices peuvent ne pas comprendre les espaces de noms ni comment les appliquer. Cet article décrira l'utilisation des espaces de noms PHP. J'espère qu'il sera utile à tout le monde.

1. Qu'est-ce que l'espace de noms en PHP ?

Qu'est-ce qu'un espace de noms ? "D'une manière générale, un espace de noms est une façon d'encapsuler des choses. Ce concept abstrait peut être vu à de nombreux endroits. Par exemple, dans les systèmes d'exploitation, les répertoires sont utilisés pour regrouper les fichiers liés. Pour les fichiers d'un répertoire, il joue le rôle d'un Par exemple, le fichier foo.txt peut exister dans les répertoires /home/greg et /home/other, mais deux fichiers foo.txt ne peuvent pas exister dans le même répertoire, lors de l'accès au fichier foo.txt en dehors du répertoire /. home/greg, nous devons mettre le nom du répertoire et le séparateur de répertoire avant le nom du fichier pour obtenir /home/greg/foo.txt. Ce principe est appliqué au domaine de la programmation en tant qu'espaces de noms. »——Présentation de l'espace de noms

.

2. Comment comprendre l'espace de noms PHP ?

Essentiellement, un espace de noms est un conteneur. Nous pouvons placer des classes, des fonctions et des variables dans ce conteneur, et elles peuvent accéder les unes aux autres sans condition dans le même espace de noms. En dehors de l'espace de noms, d'autres espaces de noms doivent être référencés ou importés afin d'appeler les éléments qu'ils contiennent.

Le concept d'espace de noms est le même que celui d'un répertoire de fichiers dans le shell. Tous les fichiers du répertoire actuel sont accessibles directement par nom de fichier. Si vous devez accéder à des fichiers dans d'autres répertoires, vous devez entrer un chemin relatif ou un chemin absolu.

Méthode de référence :

namespace foo;
 class Foo {   
         public function foo()   
             {        
                  return \top\namespace\bar\Bar::fuck();    
              }
             }


Méthode d'importation :

namespace foo; 
use top\namespace\bar\Bar; 
 class Foo {
        public function foo() 
            {        return Bar::fuck();  
            }
           }

Importer équivaut à copier la classe cible dans le espace de noms actuel.

3. Quelles sont les applications pratiques des espaces de noms PHP ?

L'existence d'un espace de noms vise à résoudre les deux problèmes suivants :

1). Entre le code écrit par l'utilisateur et les classes/fonctions/constantes internes PHP ou les classes/fonctions/constantes tierces. conflit.

2). Créez un nom alias (ou court) pour un nom d'identifiant très long (généralement défini pour pallier le premier type de problème) pour améliorer la lisibilité du code source.

4. Quelques conseils

1. Les classes d'un même espace s'appellent directement et appartiennent à la même famille. Par exemple, dans la classe PageController de Laravel, vous pouvez écrire directement du code comme Page::all() pour appeler le modèle Page, car les deux se trouvent sous l'espace de noms de niveau supérieur.

2. Si une classe existe dans un espace de noms de niveau non supérieur, elle ne peut appeler que d'autres classes dans le même espace de noms actuel sans "référence" ni "importation". Tout sous-espace de noms est un autre espace de noms, un autre conteneur, sans aucune relation particulière autre que celle entre conteneurs.

3. Laravel utilise classmap pour le chargement automatique (chargement automatique) Bien que PHP ait la fonctionnalité avancée d'espace de noms, il ne s'agit que d'une relation logique et le fichier require est toujours requis. La relation correspondante entre cette classe et le fichier existe dans /vendor/composer/autoload_classmap.php, qui sera recompilé et généré à chaque exécution de composer dump-autoload.


Recommandations associées :

Résumé de l'application du chargement automatique et des espaces de noms PHP

Introduction aux espaces de noms, traits et générateurs PHP

Un framework indispensable pour les débutants 2017 : Tutoriel du framework Thinkphp5 : Explication détaillée de l'espace de noms


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:
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