Utilisation de l'espace de noms dans thinkphp

不言
Libérer: 2023-03-31 06:44:01
original
1572 Les gens l'ont consulté

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 {
}
Copier après la connexion

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();
Copier après la connexion

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';
  }
}
Copier après la connexion

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();
Copier après la connexion

qui porte le nom du nom du module, par exemple :

namespace Home\Model;
class UserModel extends \Think\Model
{
}
Copier après la connexion

Le fichier de classe se trouve dans Application/ Home/Model/UserModel.class.php

namespace Admin\Event;
class UserEvent {
}
Copier après la connexion

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,
Copier après la connexion

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 {
}
Copier après la connexion

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);
Copier après la connexion

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 :

Aperçu de l'architecture globale du framework thinkPHP5.0 [Applications, modules, MVC, pilotes, comportements, espaces de noms, etc.]

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal