Les espaces de noms en PHP

Dans ce tutoriel nous allons apprendre les espaces de noms en PHP. En PHP, lorsque nous créons de grandes applications ou lorsque nous intégrons des applications/bibliothèques tierces, il peut y avoir des risques de conflits entre les noms de classes, les noms de fonctions. Donc pour éviter ces problèmes, les « espaces de noms » en PHP fournissent un moyen de regrouper les classes, interfaces, fonctions et constantes.
 
 
Regardons la syntaxe de la déclaration de l’espace de noms ci-dessous.

<?php
   namespace MyNamspace {
      function display() {
         echo 'Hello World!';
      }
   }
?>

Si vous souhaitez déclarer l’espace de noms globalement, alors déclarez-le sans aucun nom.

<?php  
	namespace { 
		// Espace global 
	} 
?>

Plusieurs espaces de noms peuvent être déclarés dans un même code PHP.

<?php 
	namespace MyNamespaceA { 
	   
	} 
		
	namespace MyNamespaceB { 
	   
	} 
		
	namespace MyNamespaceC { 
	   
	}  
?>

L’espace de noms est utilisé pour éviter des conflits et introduire plus de flexibilité et d’organisation dans le code. Tout comme les répertoires, l’espace de noms peut contenir une hiérarchie connue sous le nom de sous-espaces. PHP utilise la barre oblique inverse « \ » comme séparateur d’espace de noms.
 
 
L’importation est réalisée en utilisant le mot-clé « use ». On peut spécifier un alias personnalisé avec le mot-clé ‘as’.

<?php
   namespace FTP;
      class SendFile{}
	  
   namespace FTPS;
      class SendFile{}
	  
   use FTP\SendFile as FTPfile;
   use FTPS\SendFile as FTPSfile;
   
   $ftp_file = new FTPfile;
   $ftps_file = new FTPSfile;
?>

Ici nous avons deux classes avec le même nom(SendFile) avec deux espaces de noms différents. Et si on souhaite utiliser les deux classes SendFile en même temps, nous pouvons utiliser un alias. Si on veut accéder à ces objets de classe, alors nous pouvons aussi les implémenter.
 

Conclusion
  • Un espace de noms peut être considéré comme un concept abstrait. Il permet de redéclarer les mêmes fonctions/classes/interfaces dans un espace de noms séparé sans obtenir l’erreur fatale.
  • Un espace de noms est un bloc de code hiérarchiquement étiqueté contenant un code PHP régulier.
  • Un espace de noms peut contenir du code PHP valide.
  • Un espace de noms concerne les types de code suivants : classes (y compris les classes abstraits et les traits), interfaces, fonctions et constantes.
  • Les espaces de noms sont déclarés en utilisant le mot-clé namespace.

 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *