Rumah >rangka kerja php >ThinkPHP >Apakah perbezaan antara kaedah m dan kaedah d dalam thinkphp

Apakah perbezaan antara kaedah m dan kaedah d dalam thinkphp

WBOY
WBOYasal
2021-12-24 10:01:172555semak imbas

Perbezaan antara kaedah m dan kaedah d dalam thinkphp: 1. Kaedah m tidak perlu mencipta fail kelas model, manakala kaedah d mesti mencipta kelas model 2. Kaedah d akan instantiate kelas model tertentu, dan kaedah m Instantiation tidak memerlukan memuatkan kelas model tertentu.

Apakah perbezaan antara kaedah m dan kaedah d dalam thinkphp

Persekitaran pengendalian artikel ini: sistem Windows 10, versi thinkphp v5.1, komputer Dell G3.

Apakah perbezaan antara kaedah m dan kaedah d dalam thinkphp

Kaedah D secara automatik boleh mengesan kelas model, jika terdapat adat kelas model , kelas model tersuai akan dijadikan instantiated Jika ia tidak wujud, kelas asas ThinkModel sistem akan dijadikan instantiated Pada masa yang sama, model yang telah instantiated tidak akan berulang kali.

Apabila kaedah D membuat instantiate kelas model, ia biasanya membuat instantiate kelas model tertentu Jika anda hanya melakukan operasi asas CURD pada jadual data, jika anda menggunakan kaedah M untuk membuat instantiat, kerana tidak perlu. memuatkan kelas model konkrit, jadi prestasi akan lebih tinggi.

Dalam ThinkPHP, kedua-dua kaedah M dan kaedah D digunakan untuk membuat instantiate kelas model Kaedah M digunakan untuk membuat instantiate kelas model asas dengan cekap, manakala kaedah D digunakan untuk membuat instantiat yang ditentukan pengguna. kelas model.

Gunakan kaedah m

Jika situasi berikut berlaku, sila pertimbangkan untuk menggunakan kaedah M:

Lakukan operasi CURD ringkas pada jadual data tanpa kompleks Apabila hanya beberapa jadual yang mempunyai logik perniagaan yang lebih kompleks, gunakan kaedah M dalam kombinasi dengan kelas CommonModel yang dibuat segera

Kaedah M malah boleh beroperasi pada jadual data yang sepadan dengan nama jadual parameter :

$User = M('User');

Gunakan kaedah D

Jika situasi berikut berlaku, sila pertimbangkan untuk menggunakan Kaedah D:

Anda perlu menggunakan beberapa fungsi lanjutan dalam model ThinkPHP, seperti fungsi pengesahan automatik (dilaksanakan dalam kaedah create()), model berkaitan dan logik perniagaan lain yang agak kompleks dan melibatkan banyak jadual logik perniagaan ditakrifkan dalam adat Dalam kelas model (di bawah direktori Lib/Model), jika anda ingin melaksanakan logik perniagaan ini dalam operasi

Selain itu, kaedah D tidak menyokong panggilan merentas projek , anda perlu menggunakan:

$User = D( 'User', 'Admin' // Instantite the User model di bawah projek Admin $User = D('Admin.User'); Pengumpulan projek didayakan

Prompt

Selepas pengumpulan projek didayakan, kelas Model tidak semestinya sepadan dengan pengumpulan projek. Kelas model yang dikongsi di antara berbilang kumpulan projek diletakkan dalam direktori Model dan boleh digunakan secara langsung menggunakan D('ModelName'). Dan D('User.UserInfo') tidak bermakna bahawa Pengguna mestilah kumpulan projek, atau ia hanya boleh menjadi direktori klasifikasi fail di bawah Model D('User.UserInfo') menjadikan model UserInfo dalam direktori Pengguna. baik hati.

Ringkasan

Kedua-dua kaedah M dan kaedah D boleh digunakan secara langsung apabila fail kelas model tidak wujud, tetapi jelas kaedah M adalah lebih cekap tetapi untuk menggunakan logik perniagaan; kelas model, hanya Kaedah D mesti digunakan.

Metafora yang lebih jelas ialah: Kaedah M adalah seperti komputer yang baru sahaja memasang sistem pengendalian dan hanya boleh menggunakan beberapa fungsi asas manakala Kaedah D seperti memasang beberapa fungsi lain seperti Office pada sistem yang dipasang. , QQ dan perisian aplikasi lain mempunyai fungsi yang lebih berkuasa, dan pada masa yang sama, keseluruhan komputer berjalan lebih perlahan.

Di atas adalah ringkasan perbezaan antara kaedah M dan kaedah D Kaedah M dan kaedah D harus dipilih berdasarkan situasi sebenar.

Pembelajaran yang disyorkan: "10 tutorial video thinkphp terkini"

Atas ialah kandungan terperinci Apakah perbezaan antara kaedah m dan kaedah d dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn