Der Unterschied zwischen der m-Methode und der d-Methode in thinkphp: 1. Die m-Methode muss keine Modellklassendatei erstellen, während die d-Methode eine Modellklasse erstellen muss. 2. Die d-Methode instanziiert ein bestimmtes Modell Klasse, und die m-Methode muss nicht instanziiert werden. Laden Sie bestimmte Modellklassen.
Die Betriebsumgebung dieses Artikels: Windows 10-System, Thinkphp v5.1-Version, Dell G3-Computer.
Was ist der Unterschied zwischen der m-Methode und der d-Methode in thinkphp?
D-Methode kann die Modellklasse automatisch erkennen, wenn sie nicht vorhanden ist , wird die ThinkModel-Basisklasse des Systems instanziiert, und gleichzeitig wird das instanziierte Modell nicht wiederholt instanziiert.
Wenn die D-Methode eine Modellklasse instanziiert, instanziiert sie normalerweise eine bestimmte Modellklasse. Wenn Sie nur grundlegende CURD-Operationen für die Datentabelle ausführen und die M-Methode zum Instanziieren verwenden, ist es nicht erforderlich, eine bestimmte Modellklasse zu laden . , also wird die Leistung höher sein.
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, während die D-Methode zum Instanziieren einer benutzerdefinierten Modellklasse verwendet wird.
Verwenden Sie die M-Methode.
Wenn die folgende Situation auftritt, ziehen Sie bitte die Verwendung der M-Methode in Betracht:
Wenn Sie einfache CURD-Operationen an Datentabellen ohne komplexe Geschäftslogik durchführen und nur einzelne Tabellen über eine komplexere Geschäftslogik verfügen, verwenden Sie die M-Methode wird in Kombination mit der instanziierten CommonModel-Klasse verwendet und kann sogar einfach mit der Datentabelle arbeiten, die dem Parametertabellennamen entspricht:
$User = M('User');
Bitte erwägen Sie die Verwendung von Methode D, wenn die folgende Situation auftritt:
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 und andere Geschäftslogik, die relativ komplex sind und viele Tabellen umfassen. Die Geschäftslogik ist in einer benutzerdefinierten Modellklasse (im Lib/Model-Verzeichnis) definiert, und Sie möchten diese Geschäftslogik in der Operation implementieren
Darüber hinaus unterstützt die D-Methode keine projektübergreifenden Aufrufe. Sie müssen Folgendes verwenden:
$User = D( 'User', 'Admin'); // Instanziieren Sie das Benutzermodell unter dem Admin-Projekt $User = D('Admin.User'); // Projektgruppierung ist aktiviert
Tipps
Nachdem die Projektgruppierung aktiviert wurde, entsprechen Modellklassen nicht unbedingt Projektgruppierungen. 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 verwenden D-Methode.
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 Anwendungen wie Office und QQ auf dem installierten System. Die Software wird leistungsfähiger und der gesamte Computer läuft langsamer.
Das Obige ist eine Zusammenfassung der Unterschiede zwischen der M-Methode und der D-Methode. Die M-Methode und die D-Methode sollten basierend auf der tatsächlichen Situation ausgewählt werden.
Empfohlenes Lernen: „
Die neuesten 10 Thinkphp-Video-TutorialsDas obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der m-Methode und der d-Methode in thinkphp?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!