Maison >développement back-end >tutoriel php >Utilisation de l'espace de noms dans thinkphp
Cet article présente principalement l'utilisation de l'espace de noms thinkphp et analyse en détail les fonctions et les techniques d'utilisation spécifiques de l'espace de noms thinkPHP avec des exemples. Les amis dans le besoin peuvent s'y référer
Cet article explique l'utilisation de l'espace de noms thinkphp. avec des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Dans la nouvelle version (3.2), la méthode de l'espace de noms est utilisée pour définir et charger les fichiers de bibliothèque de classes, ce qui résout le problème de conflit entre plusieurs modules et obtient un mécanisme de chargement automatique plus efficace.
Vous devez définir l'espace de noms où se trouve la bibliothèque de classes. Le chemin de l'espace de noms est cohérent avec le répertoire du fichier de bibliothèque de classes, afin que la classe puisse être automatiquement chargée. Par exemple, la classe OrgUtilFile. est défini comme
namespace Org\Util; class File { }
Le chemin où il se trouve est ThinkPHP/Library/Org/Util/File.class.php Nous instancions cette classe comme suit :
$class = new \Org\Util\File();
Le. Le système chargera automatiquement le fichier ci-dessus, il n'est donc pas nécessaire de l'instancier dans l'instance. Le fichier de bibliothèque de classes est importé avant la classe définie dans l'espace de noms.
L'espace de noms racine est un concept très clé. En prenant la classe OrgUtilFile ci-dessus comme exemple, Org est un espace de noms racine, et son répertoire d'espace de noms initial correspondant est le répertoire de bibliothèque de classes du système ThinkPHP/Liberary, qui est de niveau inférieur. les sous-répertoires sont automatiquement reconnus comme espaces de noms racine et ces espaces de noms peuvent être utilisés sans inscription.
Nous ajoutons un répertoire d'espace de noms My root sous le répertoire Library, puis définissons une classe Test comme suit :
namespace My; class Test { public function sayHello() { echo 'hello'; } }
Enregistrons la classe de test dans ThinkPHP/Liberary/My/Test.class .php, nous pouvons directement instancier et appeler l'espace de noms de la bibliothèque de classes dans le module
$Test = new \My\Test(); $Test->sayHello();
qui porte le nom du nom du module, par exemple :
namespace Home\Model; class UserModel extends \Think\Model { }
Le fichier de classe se trouve dans Application/ Home/Model/UserModel.class.php
namespace Admin\Event; class UserEvent { }
Le fichier de classe se trouve dans Application/Admin/Event/UserEvent.class.php
La version 3.2.1 ou supérieure permet définition de la bibliothèque de classes d'application Sans utiliser d'espace de noms, définissez ce qui suit dans le fichier de configuration :
'APP_USE_NAMESPACE' => false,
De cette façon, la définition de l'espace de noms n'est plus nécessaire dans la bibliothèque de classes d'application, mais l'espace de noms est toujours requis lors de l'héritage et de l'appel de la bibliothèque de classes principale. Par exemple, l'espace de noms AdminModel ne sera plus écrit dans la bibliothèque de classes d'application suivante
class UserModel extends \Think\Model { }
Remarque : si vous devez instancier la bibliothèque de classes intégrée de PHP dans ; version 3.2 ou une classe tierce qui n'utilise pas de définitions d'espace de noms, vous devez utiliser la méthode suivante :
$class = new \stdClass(); $sxml = new \SimpleXmlElement($xmlstr);
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il vous sera utile. tout le monde apprend. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Comment utiliser la balise de modèle HTML de thinkPHP
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!