Maison > cadre php > PensezPHP > le corps du texte

Quelle est la différence entre d() et m() dans ThinkPHP

青灯夜游
Libérer: 2023-01-13 00:40:31
original
3037 Les gens l'ont consulté

Différence : la méthode M est utilisée pour instancier efficacement une classe de modèle de base tandis que la méthode D est utilisée pour instancier une classe de modèle définie par l'utilisateur ; La méthode M n'a pas besoin de créer un fichier de classe de modèle et la méthode M ne lit pas la classe de modèle tandis que la méthode D doit créer une classe de modèle ;

Quelle est la différence entre d() et m() dans ThinkPHP

L'environnement d'exploitation de ce tutoriel : système Windows 7, thinkphp version 6, ordinateur Dell G3.

La différence entre la méthode M et la méthode D

  • Dans ThinkPHP, la méthode M et la méthode D sont utilisées pour instancier une classe de modèle, et La méthode M est utilisée pour instancier efficacement une classe de modèle de base, tandis que la méthode D est utilisée pour instancier une classe de modèle définie par l'utilisateur.

  • La méthode M n'a pas besoin de créer un fichier de classe de modèle. La méthode M ne lit pas la classe de modèle, donc la vérification automatique n'est pas valide par défaut, mais elle peut être réalisée via dynamique. affectation et La méthode D doit créer une classe modèle.

Utiliser la méthode M

Si la situation suivante se produit, veuillez envisager d'utiliser la méthode M :

  • Lors de l'exécution d'opérations CURD simples sur des tables de données sans logique métier complexe

  • Lorsque seules les tables individuelles ont une logique métier relativement complexe, utilisez la méthode M en combinaison avec la classe CommonModel instanciée

La méthode M peut même simplement examiner les données correspondant au nom de la table de paramètres Table. opérations :

$User = M('User');
Copier après la connexion

Utilisez la méthode D

Si la situation suivante se produit, veuillez envisager d'utiliser la méthode D :

  • Vous devez utiliser certaines fonctions avancées dans le modèle ThinkPHP telles que la fonction de vérification automatique (implémentée dans la méthode create()), modèles associés, etc.

  • La logique métier est complexe et implique de nombreuses tables

  • La logique métier est définie dans une classe de modèle personnalisée (sous le répertoire Lib/Model) , et souhaitez implémenter ces logiques métier dans l'opération

De plus, la méthode D ne prend pas en charge les appels inter-projets, vous devez utiliser :

$User = D('User', 'Admin');    // 实例化 Admin 项目下面的 User 模型 
$User = D('Admin.User');        // 启用了项目分组
Copier après la connexion

Astuces

Une fois le regroupement de projets activé, la classe Model ne correspond pas nécessairement au regroupement de projets. Les classes de modèles partagées entre plusieurs groupes de projets sont placées dans le répertoire Model et peuvent être instanciées directement à l'aide de D('ModelName'). Et D('User.UserInfo') ne signifie pas que User doit être un groupe de projet, ou il peut simplement s'agir d'un répertoire de classification de fichiers sous Model. D('User.UserInfo') instancie le modèle UserInfo dans le répertoire User. gentil.

Résumé

La méthode M et la méthode D peuvent être utilisées directement lorsque le fichier de classe de modèle n'existe pas, mais la méthode M est évidemment plus efficace mais pour utiliser la logique métier dans la classe de modèle, vous devez utiliser la méthode D ;

Une métaphore plus frappante est la suivante : la méthode M est comme un ordinateur qui vient d'installer le système d'exploitation et ne peut utiliser que certaines fonctions de base ; tandis que la méthode D revient à installer des logiciels d'application tels qu'Office et QQ sur le système installé. puissant, et en même temps l’ensemble de l’ordinateur fonctionne plus lentement.

Recommandations associées : Les 10 derniers didacticiels vidéo 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