Maison >développement back-end >tutoriel php >Explication détaillée des fonctions ThinkPHP : méthode D

Explication détaillée des fonctions ThinkPHP : méthode D

不言
不言original
2018-04-27 14:45:042858parcourir

Cet article présente une explication détaillée des fonctions ThinkPHP : Méthode D, qui a une certaine valeur de référence. Maintenant, je la partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Méthode D

La méthode D devrait être la méthode la plus couramment utilisée. Elle est utilisée pour instancier des classes de modèles personnalisées. Il s'agit d'une encapsulation de l'instanciation de la classe Model par le framework ThinkPHP. Elle implémente également le mode singleton et prend en charge les appels inter-projets et de groupe. format Comme suit :


D('[Project://][Group/]Model','Model layer name')La valeur de retour de la méthode est l'objet modèle instancié.

La méthode D peut détecter automatiquement la classe de modèle. Si une classe de modèle personnalisée existe, la classe de modèle personnalisée sera instanciée. Si elle n'existe pas, la classe de base du modèle sera instanciée

<.> , et en même temps, le modèle qui a été instancié ne sera pas instancié à plusieurs reprises. L'utilisation la plus courante de la méthode
D consiste à instancier un modèle personnalisé du projet en cours, par exemple :



  1. // 实例化User模型
     $User = D(&#39;User&#39;);
  2. Copier le code

importera le fichier Lib/Model/UserModel.class.php sous le projet en cours, puis instanciera la classe UserModel, de sorte que le code réel puisse être équivalent à ce qui suit :

  1. import(&#39;@.Model.UserModel&#39;);
     $User = new UserModel();
  2. Copier le code

Mais si vous utilisez la méthode D, si la classe UserModel n'existe pas, elle appellera automatiquement

  1. new Model(&#39;User&#39;);
  2. Copiez le code

et n'avez pas besoin de l'instancier à nouveau lors de son deuxième appel, ce qui peut réduire une certaine quantité de surcharge d'instanciation d'objet.

La méthode D peut prendre en charge l'instanciation de modèles entre groupes et projets, par exemple :

  1. //实例化Admin项目的User模型
     D(&#39;Admin://User&#39;)
     //实例化Admin分组的User模型
     D(&#39;Admin/User&#39;)
  2. Copier le code

Remarque : pour implémenter le modèle d'appel inter-projets, vous devez vous assurer que les structures de répertoires des deux projets sont parallèles.


À partir de la version 3.1, grâce à la prise en charge supplémentaire des modèles hiérarchiques, la méthode D peut également instancier d'autres modèles, par exemple :

  1. // 实例化UserService类
     $User = D(&#39;User&#39;,&#39;Service&#39;);
     // 实例化UserLogic类
     $User = D(&#39;User&#39;,&#39;Logic&#39;);

复制代码

  1. D(&#39;User&#39;,&#39;Service&#39;);
  2. Copier le code

importera Lib/Service/UserService.class.php et l'instanciera, ce qui équivaut au code suivant :

  1. import(&#39;@.Service.UserService&#39;);
     $User = new UserSerivce();
  2. Recommandations associées :

Une brève discussion sur la mise en œuvre simple de l'instance thinkphp5

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