Apa itu MVC?
Piawaian MVC untuk Model-View-Control. Ini adalah corak seni bina yang membelah aplikasi menjadi tiga komponen utama.
1. Model berkaitan dengan logik perniagaan dan interaksi pangkalan data
2. Pengawal menyelaraskan aktiviti antara model dan pandangan
3. Pandangan bertanggungjawab untuk penyampaian data
Berikut adalah beberapa kelebihan corak seni bina MVC
- Gandingan longgar - komponen wujud dan berfungsi secara bebas antara satu sama lain.
- Fleksibiliti - seseorang dapat dengan mudah membuat perubahan pada komponen individu
- Produktiviti meningkat - lebih daripada satu orang dapat mengerjakan projek pada masa yang sama. Pembangun bahagian depan boleh menggunakan pandangan dan persembahan sementara pembangun backend dapat memberi tumpuan kepada model dan kerana sistem ini digabungkan secara longgar, ia berfungsi pada akhir hari
Dalam tutorial ini, anda akan belajar:
- Apa itu MVC?
- Model
- Pengawal
- Pandangan
- Bagaimana kerangka kerja MVC berfungsi?
- Pengawal CodeIgniter
- Model CodeIgniter
Model
Model ini bertanggungjawab untuk berinteraksi dengan sumber data. Ini biasanya pangkalan data, tetapi juga dapat menjadi layanan yang menyediakan data yang diminta. Ini juga merupakan kebiasaan untuk mempunyai logik perniagaan yang terdapat di dalam model berbanding dengan pengawal. Amalan ini biasanya disebut pengawal kurus model lemak.
Model biasanya menulis data ke dalam pangkalan data, menyediakan mekanisme untuk menyunting dan mengemas kini, dan menghapus data. Dalam aplikasi web moden, model menggunakan corak reka bentuk akses data seperti rekod aktif untuk memudahkan berinteraksi dengan pangkalan data.
Sebagai contoh, CodeIgniter menggunakan pustaka Aktif Perpustakaan terbina dalam untuk membantu model sementara kerangka kerja lain seperti Laravel menggunakan Eloquent Object Relational Mapper (ORM) yang membantu akses data.
Pengawal
Pengawal mendengar permintaan masuk untuk sumber dari pengguna. Ia bertindak sebagai perantara antara model dan pandangan dan kadang-kadang menerapkan beberapa peraturan perniagaan juga. Katakan pengawal menerima permintaan untuk mendaftarkan pengguna dalam pangkalan data.
Pengawal boleh melakukan pengesahan data mengenai apa yang telah diserahkan untuk memastikan bahawa semua parameter yang diperlukan telah disampaikan. Sekiranya ada yang hilang pengguna diarahkan ke halaman pendaftaran dengan mesej ralat yang sesuai dipaparkan. Pengawal juga boleh meminta model untuk melakukan lebih banyak pengesahan dengan memeriksa apakah alamat e-mel yang dihantar sudah ada. Sekiranya semua peraturan pengesahan berlalu maka pengawal menyerahkan data ke model untuk proses dan menunggu tindak balas.
Setelah model memproses maklumat dan memberikan respons positif, pengawal memuatkan pandangan yang sesuai dan menyampaikan data yang dikembalikan dari model sebagai parameter.
Pandangan
Pandangan berkenaan dengan data yang disampaikan kepada pengguna akhir. Dalam aplikasi web, paparan sering kali mengandungi HTML, CSS, dan JavaScript pilihan. Paparan mengandungi kod pengaturcaraan minimum. Kod yang terdapat dalam paparan biasanya digunakan untuk melingkari koleksi data yang diterima sebagai parameter dari model atau fungsi pembantu untuk membersihkan data atau membuat pautan untuk mengedit catatan. Sebilangan besar aplikasi web moden biasanya menggunakan mesin templat yang menentukan sintaks mereka sendiri yang lebih mirip dengan pseudocode dan mudah difahami oleh pereka. Semasa bekerja dengan CodeIgniter, adalah kebiasaan menggunakan tag PHP pendek dan struktur kawalan. Untuk memaparkan sesuatu dalam CodeIgniter, seseorang mungkin menggunakan kod berikut
Yang bertentangan dengan
Struktur kawalan biasanya ditulis seperti berikut
Seperti yang anda lihat dari contoh di atas, paparan akan menggunakan gabungan PHP dan HTML dan bukannya melampirkan semuanya dalam kod PHP tulen.
Bagaimana kerangka kerja MVC berfungsi?
Gambar berikut menunjukkan kerangka kerja MVC berfungsi
Pengawal menerima permintaan dari pengguna, berinteraksi dengan model pangkalan data jika perlu kemudian mengembalikan hasilnya ke penyemak imbas dalam bentuk kod HTML yang ditafsirkan oleh penyemak imbas ke dalam format yang dapat dibaca oleh manusia dan dipaparkan kepada pengguna.
Pengawal CodeIgniter
Sekarang mari kita pecahkan apa yang baru berlaku ketika kita memuatkan URL di atas ke penyemak imbas web.
Buka fail Welcome.php pengawal yang terletak aplikasi / pengawal
Anda seharusnya dapat melihat kod berikut
load->view('welcome_message');}}
DI SINI,
- ditakrifkan ('BASEPATH') ATAU keluar ('Tidak dibenarkan akses skrip langsung'); menghalang akses langsung ke pengawal jika permintaan tidak datang melalui index.php. ini adalah untuk tujuan keselamatan.
- kelas Welcome meluaskan CI_Controller {…} mentakrifkan kelas pengawal Welcome dan memperluas kelas induk CI_Controller
- indeks fungsi awam () {…} mentakrifkan kaedah indeks yang bertindak balas terhadap URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); memuatkan message welcome_message yang terdapat di direktori aplikasi / paparan
Kami sekarang akan mengemas kini kaedah indeks seperti berikut
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
DI SINI,
- $ this-> load-> model ('customers_model'); memuatkan model pelanggan.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); memanggil kaedah get_customer pelanggan_model dan lulus dalam parameter 3. Dalam contoh ini, kami telah mengekodkan nilainya dengan keras tetapi dalam aplikasi kehidupan nyata ini akan menjadi parameter dari URI.
- $ this-> load-> view ('welcome_message', $ data); memuat paparan welcome_message dan meneruskan pemboleh ubah data $ ke paparan
Model CodeIgniter
Sekarang mari kita buat pandangan yang kita rujuk dalam kod di atas. Untuk kesederhanaan, model kami tidak akan berinteraksi dengan pangkalan data tetapi akan mengembalikan rekod pelanggan yang statik. Kami akan bekerjasama dengan pangkalan data dalam tutorial seterusnya.
Buat fail Customers_model.php dalam aplikasi / model
Tambahkan kod berikut
DI SINI,
- class_model Pelanggan meluaskan CI_Model {…} mentakrifkan model Pelanggan_model yang memanjangkan CI_Model.
- fungsi awam get_customer ($ id) {…} mentakrifkan kaedah mendapatkan pelanggan berdasarkan id pelanggan
- $ data […] mentakrifkan nilai statik pelanggan rekaan kami. Ini mestilah baris yang dikembalikan dari pangkalan data.
- mengembalikan data $; mengembalikan data pelanggan.
Iaitu, untuk model kita. Sekarang mari ubah suai pandangan welcome_message
Buka Welcome_message.php yang terletak di
application/views/welcome_message.php
Ganti kod dengan yang berikut
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Simpan perubahan
Muatkan URL berikut di penyemak imbas web
http: // localhost: 3000 /
Anda seharusnya dapat melihat kad pelanggan seperti yang ditunjukkan dalam gambar di bawah
Ringkasan
- MVC adalah corak seni bina yang membelah aplikasi menjadi tiga komponen utama
- Model ini bertanggungjawab untuk berinteraksi dengan sumber data
- Pengawal mendengar permintaan masuk untuk sumber dari pengguna
- Dalam aplikasi web, paparan sering kali mengandungi HTML, CSS, dan JavaScript pilihan
- Pengawal menerima permintaan dari pengguna, berinteraksi dengan model pangkalan data jika perlu kemudian mengembalikan hasilnya ke penyemak imbas dalam bentuk kod HTML