Jadual Kandungan
4 Tanggungjawab Model" >4 Tanggungjawab Model
5 Tanggungjawab Pengawal" >5 Tanggungjawab Pengawal
6 Pencerahan" >6 Pencerahan
Rumah pembangunan bahagian belakang tutorial php Contoh untuk menerangkan maksud dan pembahagian tanggungjawab seni bina MVC

Contoh untuk menerangkan maksud dan pembahagian tanggungjawab seni bina MVC

Jan 07, 2022 pm 02:09 PM
seni bina mvc

Baru-baru ini saya bertanggungjawab untuk projek menggunakan rangka kerja MVC Rangka Kerja Yii Pada mulanya saya fikir struktur itu sangat teguh.

Tetapi apabila saya mendalami pemahaman saya tentang logik perniagaan, saya mula menyedari betapa seriusnya masalah itu.

Saya salah faham Pengawal dalam MVC, dan mengambil mudah berdasarkan pengalaman lalu bahawa saya meletakkan semua logik perniagaan dalam pencapaian Pengawal. action

Akibatnya, setiap

Pengawal mempunyai beribu-ribu baris kod , yang semakin kembung .

Akhirnya, saya membuat keputusan untuk memfaktorkan semula kod itu ialah keperluan untuk antara muka API terbuka.

Mengikut seni bina semasa, kod itu pada asasnya mustahil untuk digunakan semula saya perlu menulis banyak fungsi berulang kali, yang benar-benar tidak boleh diterima.

Pengaturcaraan berorientasikan objek bukan sekadar istilah dalam buku teks!

Hanya apabila saya mula berlatih barulah saya menyedari betapa jarangnya mempunyai kesedaran berorientasikan objek dan perspektif global.

Contoh untuk menerangkan maksud dan pembahagian tanggungjawab seni bina MVC

1 Apakah sebenarnya MVC

Model-View-Controller (MVC) ialah sejenis

Rangka kerja reka bentuk (corak reka bentuk) .

Matlamat MVC adalah untuk memisahkan logik perniagaan daripada pertimbangan antara muka pengguna.

Dengan cara ini, pembangun boleh menukar setiap bahagian dengan lebih mudah tanpa menjejaskan bahagian yang lain.

Dalam MVC,

    Model mewakili
  • peraturan data dan perniagaan; >Elemen antara muka pengguna, seperti teks, borang
  • , dll.;
  • Pengawal mengurus komunikasi
  • antara model dan pandangan.
  • MVC dilaksanakan dalam pelbagai bahasa pengaturcaraan Sebagai contoh, dalam pembangunan aplikasi J2EE, View boleh dilaksanakan oleh jsp Controller ialah servlet, kini umumnya dilaksanakan dengan Model Struts; Ia dilaksanakan oleh entiti Bean.

2 Apakah masalah yang saya hadapi

Yii Framework ialah rangka kerja PHP popular yang meminjam konsep

() daripada Ruby on Rails.

Setiap

dalam pangkalan data boleh menggunakan kelas ActiveRecord untuk melakukan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan dengan mudah. AR

Ia menganggap AR sebagai Model dan mengesyorkan meletakkannya di bawah direktori bernama

. tableARJadi, selepas saya menjana AR secara automatik yang sepadan dengan jadual, saya mengambil mudah bahawa saya sudah mempunyai lapisan Model.

Sebenarnya, models

AR hanyalah DAO (lapisan akses data), bukan lapisan Model

.

Hampir semua perniagaan kami diletakkan dalam Pengawal: Buat pelbagai pertimbangan logik pada borang yang diserahkan oleh pengguna, lakukan pengiraan, sertakan AR untuk menyimpan data...

Oleh kerana akan terdapat berbilang

dalam Pengawal, setiap mempunyai pemprosesan perniagaan sedemikian.

Akhir sekali, saya mendapati bahawa kod Pengawal saya telah melebihi 1000 baris.

actionTiba-tiba pada suatu hari, ketua berkata bahawa sistem kami harus membuka API untuk sistem lama sedia ada untuk memanggil dan menyediakan antara muka pihak ketiga. action

Pihak ketiga hanya perlu memberikan parameter, dan sistem ini hanya memberikan nilai hasil. Ia tidak mengambil berat tentang pemprosesan perniagaan.

Perkara buruknya ialah Pengawal telah melaksanakan perkhidmatan tersebut, tetapi ia menerima penyerahan borang. Bagaimanakah ia juga boleh menerima dokumen SOAP xml?

Pengawal, seperti kondom, hendaklah nipis yang mungkin.

Tanggungjawabnya seharusnya hanya menerima input pengguna dan kemudian segera memajukannya ke kelas lain untuk diproses

.

Dengan cara ini, Pengawal hanya bertanggungjawab untuk menyediakan antara muka yang berbeza, supaya kami boleh memisahkan logik perniagaan dan perniagaan yang dipisahkan boleh digunakan semula dengan mudah. Siapa yang akan mengendalikan bahagian perniagaan yang berasingan ini? Jawapannya sepatutnya Model

.

3 Tanggungjawab View

View bahagian agak jelas, ia bertanggungjawab untuk paparan.

Apa-apa sahaja yang tiada kaitan dengan antara muka paparan tidak seharusnya muncul dalam paparan.

Oleh itu, secara amnya tidak sepatutnya mempunyai penyata penghakiman yang kompleks atau proses pengiraan yang rumit dalam Lihat

.

boleh mempunyai pernyataan gelung mudah dan pernyataan pemformatan. Sebagai contoh, senarai teks pada halaman utama blog adalah sejenis gelung. Untuk aplikasi web PHP,

HTML ialah kandungan utama dalam View

.

Paparan tidak boleh memanggil kaedah penulisan Model

.

Dalam erti kata lain, View hanya membaca data daripada Model tetapi tidak menulis semula Model.

Jadi kami katakan bahawa View dan Model tidak dapat dipisahkan.

Selain itu, $_GET dan $_POST tidak diakses secara langsung dalam View dan harus dihantar ke View by Controller.

Selain itu, View umumnya tidak mempunyai sebarang kandungan untuk menyediakan pemprosesan data , seperti menanyakan pangkalan data, dsb.

Ini biasanya diletakkan dalam Pengawal dan dihantar ke paparan dalam bentuk pembolehubah.

Dalam erti kata lain, data yang akan digunakan dalam paparan ialah pembolehubah .

4 Tanggungjawab Model

Untuk Model, perkara paling penting ialah menyimpan dan mengeluarkan maklumat .

Sebagai contoh, kelas Post mesti mempunyai atribut title untuk menyimpan tajuk siaran blog dan mesti ada operasi pemadaman Ini semua kandungan Model.

Data, tingkah laku dan kaedah ialah kandungan utama Model .

Dalam kerja sebenar, Model mempunyai jumlah kod terbesar dalam MVC .

Model ialah bahagian logik yang paling kompleks, kerana logik perniagaan aplikasi juga mesti dinyatakan di sini.

Beri perhatian kepada membezakan Model daripada Pengawal.

Model mengendalikan logik perniagaan dan Pengawal hanya menyelaraskan hubungan antara Model dan View.

Selagi ia berkaitan dengan perniagaan, ia harus diletakkan dalam Model.

Pengesahan data, awampemalar dan pembolehubah semuanya harus diletakkan dalam lapisan model,

Dengan kata lain, atribut atau kaedah yang boleh digunakan semula harus diletakkan dalam lapisan model, ditakrifkan sekali dan digunakan di mana-mana sahaja.

Model tidak boleh mengakses permintaan, sesi dan data persekitaran lain, ini harus disuntik oleh Pengawal.

Reka bentuk yang baik mestilah Model gemuk dan Pengawal nipis.

5 Tanggungjawab Pengawal

Untuk Pengawal, ia adalah terutamanya untuk membalas permintaan pengguna dan memutuskan pandangan untuk gunakan, yang perlu disediakan Data apa yang digunakan untuk memaparkan .

Oleh itu, untuk kod akses request hendaklah diletakkan dalam Pengawal , seperti $_GET, $_POST, dsb.

Pengawal harus dihadkan untuk mendapatkan data permintaan pengguna, tidak boleh melakukan sebarang operasi atau prapemprosesan pada data , ini harus diletakkan di dalam Model.

Untuk operasi penulisan data, perlu memanggil kaedah kelas Model untuk diselesaikan.

Sebagai tindak balas kepada permintaan pengguna, paparan paparan dipanggil.

Selain itu, secara amnya tidak sepatutnya ada kod HTML atau perkara lapisan pembentangan lain , ini sepatutnya menjadi kandungan Paparan.

6 Pencerahan

Terdapat perenggan ini dalam dokumentasi rasmi Rangka Kerja Yii:

Dalam aplikasi MVC yang direka dengan baik, pengawal selalunya sangat nipis, mungkin mengandungi hanya beberapa dozen baris kod manakala model sangat gemuk, mengandungi kebanyakan kod yang bertanggungjawab untuk mewakili dan memanipulasi data.

Ringkasnya, Kaya Model adalah Lebih Baik.

Atas ialah kandungan terperinci Contoh untuk menerangkan maksud dan pembahagian tanggungjawab seni bina MVC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP melaksanakan seni bina MVC: prinsip asas dan aplikasi PHP melaksanakan seni bina MVC: prinsip asas dan aplikasi Jun 18, 2023 pm 01:13 PM

PHP melaksanakan seni bina MVC: prinsip asas dan aplikasi MVC (Model-View-Controller) ialah corak reka bentuk perisian biasa Ia adalah satu cara untuk membahagikan aplikasi kepada tiga komponen teras (model, paparan, pengawal). Tujuan utama corak ini adalah untuk memisahkan kod ke dalam blok binaan bebas untuk meningkatkan kebolehselenggaraan, kebolehskalaan dan kebolehgunaan semula pembangunan. Dalam pembangunan web, MVC telah menjadi salah satu corak reka bentuk yang paling popular. PHP adalah salah satu bahasa yang popular untuk pembangunan web.

Bagaimana untuk melaksanakan seni bina MVC yang selamat melalui rangka kerja PHP8 Bagaimana untuk melaksanakan seni bina MVC yang selamat melalui rangka kerja PHP8 Sep 11, 2023 am 08:21 AM

Cara melaksanakan seni bina MVC yang selamat melalui rangka kerja PHP8 Dengan perkembangan pesat Internet, aplikasi Web memainkan peranan yang semakin penting dalam kehidupan kita. Walau bagaimanapun, apabila kerumitan aplikasi web meningkat, isu keselamatan telah menjadi isu kritikal yang tidak boleh diabaikan. Untuk melindungi keselamatan data aplikasi dan pengguna, kami perlu menggunakan seni bina dan cara teknikal yang sesuai untuk memastikan keselamatan aplikasi. Dalam pembangunan PHP, mengguna pakai seni bina MVC adalah amalan biasa. Dalam rangka kerja PHP8, kita boleh gunakan

Bagaimana untuk membina seni bina MVC yang berkesan dalam rangka kerja PHP8 Bagaimana untuk membina seni bina MVC yang berkesan dalam rangka kerja PHP8 Sep 12, 2023 pm 03:18 PM

Cara membina seni bina MVC yang berkesan dalam rangka kerja PHP8 MVC (Model-View-Controller) ialah corak reka bentuk perisian biasa yang digunakan untuk menyediakan struktur organisasi yang berkesan untuk aplikasi. Dalam pembangunan PHP, corak MVC ialah alat penting untuk pembangun untuk meningkatkan kebolehselenggaraan dan kebolehskalaan kod. Artikel ini akan memperkenalkan cara membina seni bina MVC yang berkesan dalam rangka kerja PHP8. 1. Pemilihan rangka kerja Memilih rangka kerja yang sesuai adalah langkah pertama dalam membina seni bina MVC. PHP8 pada masa ini mempunyai banyak

Pelaksanaan seni bina MVC dalam PHP dan jawapan kepada soalan lazim Pelaksanaan seni bina MVC dalam PHP dan jawapan kepada soalan lazim Jun 08, 2023 pm 02:19 PM

Dalam pembangunan Web, corak seni bina MVC sering digunakan dalam pembangunan aplikasi Web. Dalam pembangunan PHP, seni bina MVC telah digunakan secara meluas, menyediakan penyelesaian yang berkesan untuk pembangunan aplikasi Web. Artikel ini akan memperkenalkan pelaksanaan seni bina MVC dalam PHP dan jawapannya kepada soalan lazim. 1. Pengenalan kepada corak seni bina MVC MVC ialah corak seni bina untuk pembangunan perisian Ia terutamanya terdiri daripada tiga komponen: Model, Pandangan dan Pengawal.

Analisis seni bina MVC -- memahami prinsip asas aplikasi Web Analisis seni bina MVC -- memahami prinsip asas aplikasi Web Sep 08, 2023 am 10:48 AM

Analisis seni bina MVC - memahami prinsip asas aplikasi Web Seni bina MVC (Model-View-Controller) ialah corak reka bentuk perisian yang biasa digunakan untuk membina aplikasi Web. Ia membahagikan aplikasi kepada tiga komponen asas: Model, View dan Controller. Setiap bahagian bertanggungjawab untuk fungsi yang berbeza dan bekerjasama untuk menjadikan aplikasi lebih jelas, boleh diselenggara dan berskala. Model Model A ialah aplikasi

Bagaimana untuk menggunakan rangka kerja CakePHP dalam php? Bagaimana untuk menggunakan rangka kerja CakePHP dalam php? May 31, 2023 pm 02:51 PM

Dalam pembangunan web moden, menggunakan rangka kerja MVC boleh meningkatkan kecekapan pembangunan dan kebolehselenggaraan kod. CakePHP ialah rangka kerja PHP berdasarkan corak reka bentuk MVC Kemudahan penggunaan dan fleksibiliti menjadikannya disukai oleh ramai pembangun. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja CakePHP untuk membangunkan aplikasi web. Kerja penyediaan Sebelum menggunakan CakePHP, anda perlu memasang perisian berikut: PHP5.6 atau lebih tinggi MySQL5.5 atau pelayan Apache yang lebih tinggi

Bagaimana untuk melaksanakan seni bina MVC berskala dan boleh diselenggara dalam rangka kerja PHP8 Bagaimana untuk melaksanakan seni bina MVC berskala dan boleh diselenggara dalam rangka kerja PHP8 Sep 11, 2023 am 08:49 AM

Cara melaksanakan seni bina MVC berskala dan boleh diselenggara dalam rangka kerja PHP8 Pengenalan: Dengan pembangunan berterusan aplikasi web, seni bina MVC (Model-View-Controller) telah menjadi corak reka bentuk yang diterima pakai secara meluas. Ia boleh membantu pembangun mengasingkan logik aplikasi, paparan dan data, meningkatkan kebolehskalaan dan kebolehselenggaraan kod. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan seni bina MVC yang boleh diperluas dan boleh diselenggara dalam rangka kerja PHP8. 1. Fahami seni bina MVC Seni bina MVC terdiri daripada tiga komponen utama: Model (M

Senibina Yii: MVC dan banyak lagi Senibina Yii: MVC dan banyak lagi Apr 11, 2025 pm 02:41 PM

Rangka kerja YII mengamalkan seni bina MVC dan meningkatkan fleksibiliti dan skalabilitasnya melalui komponen, modul, dan lain -lain. 1) Mod MVC membahagikan logik aplikasi ke dalam model, pandangan dan pengawal. 2) Pelaksanaan MVC YII menggunakan pemprosesan permintaan penghalusan tindakan. 3) YII menyokong pembangunan modular dan meningkatkan organisasi dan pengurusan kod. 4) Gunakan pengoptimuman pertanyaan cache dan pangkalan data untuk meningkatkan prestasi.

See all articles