Heim > Artikel > PHP-Framework > Was ist der Unterschied zwischen d() und m() in ThinkPHP?
Unterschied: Die M-Methode wird zum effizienten Instanziieren einer Basismodellklasse verwendet, während die D-Methode zum Instanziieren einer benutzerdefinierten Modellklasse verwendet wird. Die M-Methode muss keine Modellklassendatei erstellen und die M-Methode liest die Modellklasse nicht, während die D-Methode eine Modellklasse erstellen muss.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Thinkphp Version 6, Dell G3-Computer.
Der Unterschied zwischen M-Methode und D-Methode
In ThinkPHP werden sowohl die M-Methode als auch die D-Methode zum Instanziieren einer Modellklasse verwendet, die M-Methode wird zum effizienten Instanziieren einer Basismodellklasse verwendet und die D-Methode wird verwendet um eine benutzerdefinierte Modellklasse zu instanziieren.
Die M-Methode muss keine Modellklassendatei erstellen, daher ist die automatische Überprüfung standardmäßig ungültig, kann aber durch dynamische Zuweisung erreicht werden, während die D-Methode erstellt werden muss eine Modellklasse.
Verwenden Sie die M-Methode
Wenn die folgende Situation auftritt, ziehen Sie bitte die Verwendung der M-Methode in Betracht:
Bei der Durchführung einfacher CURD-Operationen an Datentabellen ohne komplexe Geschäftslogik
Wenn nur einzelne Tabellen über eine komplexere Geschäftslogik verfügen, verwenden Sie die M-Methode mit Instanziieren der Die CommonModel-Klasse zur kombinierten Verwendung
M-Methode kann sogar einfach die Operation der Datentabelle entsprechend dem Parametertabellennamen betrachten:
$User = M('User');
Verwenden Sie die D-Methode
Wenn die folgende Situation auftritt, ziehen Sie bitte die Verwendung der D-Methode in Betracht:
Sie müssen einige erweiterte Funktionen im ThinkPHP-Modell verwenden, wie z. B. die automatische Überprüfungsfunktion (implementiert in der Methode create()), zugehörige Modelle usw.
Geschäftslogik ist relativ komplex und umfasst viele Tabellen
Die Geschäftslogik ist in der benutzerdefinierten Modellklasse (im Verzeichnis Lib/Model) definiert, und ich möchte diese Geschäftslogik in den Betrieb implementieren
Darüber hinaus unterstützt die D-Methode keine projektübergreifenden Aufrufe. Sie müssen Folgendes verwenden:
$User = D('User', 'Admin'); // 实例化 Admin 项目下面的 User 模型 $User = D('Admin.User'); // 启用了项目分组
Tips
Nachdem die Projektgruppierung aktiviert wurde, entspricht die Modellklasse nicht unbedingt der Projektgruppierung. Von mehreren Projektgruppen gemeinsam genutzte Modellklassen werden im Modellverzeichnis abgelegt und können direkt mit D('ModelName') instanziiert werden. Und D('User.UserInfo') bedeutet nicht, dass der Benutzer eine Projektgruppe sein muss, oder es kann sich lediglich um ein Klassifizierungsverzeichnis von Dateien unter Model handeln. D('User.UserInfo') instanziiert das UserInfo-Modell im Benutzerverzeichnis. Art.
Zusammenfassung
Sowohl die M-Methode als auch die D-Methode können direkt verwendet werden, wenn die Modellklassendatei nicht vorhanden ist. Die M-Methode ist jedoch offensichtlich effizienter. Um jedoch die Geschäftslogik in der Modellklasse verwenden zu können, müssen Sie die D-Methode verwenden.
Eine anschaulichere Metapher ist: Methode M ist wie ein Computer, der gerade das Betriebssystem installiert hat und nur einige Grundfunktionen nutzen kann; Methode D ist wie die Installation einiger Anwendungssoftware wie Office und QQ auf dem installierten System , und gleichzeitig läuft der gesamte Computer langsamer.
Verwandte Empfehlungen: Die neuesten 10 Thinkphp-Video-Tutorials
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen d() und m() in ThinkPHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!