Apakah kerangka kerja PHP MVC?
PHP MVC adalah corak reka bentuk aplikasi yang memisahkan data aplikasi dan logik perniagaan (model) dari persembahan (paparan). MVC bermaksud Model, View & Controller.
Pengawal menjadi pengantara antara model dan pandangan.
Fikirkan corak reka bentuk MVC sebagai kereta dan pemandu.
Kereta ini mempunyai cermin depan (pandangan) yang digunakan oleh pemandu (pengawal) untuk memantau lalu lintas di hadapan kemudian kelajuan atau brek (model) bergantung pada apa yang dilihatnya di hadapan.
Mengapa menggunakan PHP MVC Framework?
- Kerangka PHP MVC mempermudah bekerja dengan teknologi yang kompleks dengan;
- Menyembunyikan semua perincian pelaksanaan yang kompleks
- Menyediakan kaedah standard yang boleh kita gunakan untuk membina aplikasi kita.
- Peningkatan produktiviti pemaju, ini kerana pelaksanaan asas aktiviti seperti menyambung ke pangkalan data, membersihkan pengguna dan lain-lain sudah dilaksanakan sebahagiannya.
- Mematuhi standard pengekodan profesional
Dalam tutorial ini, anda akan belajar-
- Corak Reka Bentuk PHP MVC
- Jenis kerangka PHP MVC
- Menyerahkan aplikasi tinjauan pendapat ke CodeIgniter
- Tetapan konfigurasi pangkalan data
- Membuat Model Kami
- Membuat Pandangan Kami
- Menguji aplikasi kami
Corak Reka Bentuk PHP MVC
Mari kita bincangkan secara ringkas setiap komponen corak reka bentuk MVC.
Model - bahagian ini berkaitan dengan logik perniagaan dan data aplikasi. Ia dapat digunakan untuk melakukan validasi data, memproses data dan menyimpannya. Data boleh datang dari;
- fail rata
- pangkalan data
- Dokumen XML
- Sumber data lain yang sah.
Pengawal - ini adalah bahagian yang berkaitan dengan permintaan pengguna untuk sumber dari pelayan.
Sebagai contoh, apabila pengguna meminta URL… /index.php?products=list, pengawal akan memuatkan model produk untuk mengambil data produk kemudian mengeluarkan hasilnya dalam paparan senarai.
Ringkasnya, pengawal menghubungkan model dan pandangan bersama bergantung pada sumber yang diminta.
Pandangan - bahagian ini berkaitan dengan penyampaian data kepada pengguna. Ini biasanya dalam bentuk halaman HTML.
Jenis kerangka PHP MVC
Memilih kerangka kerja PHP terbaik adalah satu cabaran.
Anda tidak perlu menulis kerangka kerja anda sendiri untuk memanfaatkan kelebihan MVC.
Anda hanya perlu membuat reka bentuk aplikasi berkaitan MVC anda sendiri untuk memahami bagaimana kerangka kerja MVC berfungsi.
Setelah anda selesa dengan cara kerja kerangka kerja MVC, anda harus beralih ke kerangka kerja yang matang dan sudah diuji.
Jadual di bawah menerangkan secara ringkas beberapa kerangka kerja php popular dan ciri-ciri yang ditawarkan oleh setiap kerangka.
Kerangka | Penerangan |
---|---|
![]() | Ini adalah salah satu kerangka PHP MVC yang paling popular. Ia ringan dan mempunyai keluk pembelajaran pendek. Ia mempunyai banyak koleksi perpustakaan yang membantu membina laman web dan aplikasi dengan cepat. Pengguna dengan pengetahuan terhad mengenai pengaturcaraan OOP juga dapat menggunakannya. Aplikasi bertenaga CodeIgniter merangkumi;
|
![]() | Ini adalah rangka kerja HMVC Model View Hierarchical yang selamat dan ringan. Ia mempunyai banyak komponen untuk mengembangkan aplikasi dengan cepat. Syarikat yang menggunakan Kohana termasuk;
|
![]() | Ia dimodelkan mengikut Ruby di landasan kereta api. Ia terkenal dengan konsep seperti corak reka bentuk perisian, konfigurasi konvensyen, ActiveRecord dll. Aplikasi bertenaga CakePHP merangkumi;
|
![]() | Ia adalah kerangka yang kuat iaitu;
|
Menyerahkan aplikasi tinjauan pendapat ke CodeIgniter
Dalam tutorial ini, kami membuat aplikasi tinjauan PHP. Di sini, kami akan memindahkan kod itu ke CodeIgniter
- Muat turun CodeIgniter versi terkini dari laman web mereka.
- Ekstrak kandungan fail zip ke direktori pengembangan anda di direktori pelayan web anda. Kami akan menggunakan ciopinionpoll sebagai nama folder dalam pelajaran ini.
- Lihat ke URL http: // localhost / ciopinionpoll /
Kami sekarang akan menghantar aplikasi tinjauan pendapat kami ke CodeIgniter. Ingatlah bahawa aplikasi kita terbahagi kepada tiga komponen utama iaitu;
- Pengawal depan - ini adalah bahagian yang bertindak balas terhadap permintaan URL dan mengembalikan halaman yang diminta. Kod ini akan masuk ke dalam pengawal
- Model - ini adalah kod yang bertindak balas terhadap data yang diminta dan mengembalikan data yang diminta. Kod ini akan masuk ke dalam model
- Paparan - ini adalah kod yang bertanggungjawab untuk memformat dan memaparkan data. Kod ini akan masuk ke dalam paparan
- Semak imbas ke folder ciopinionpoll
- Buka fail database.php yang terdapat di direktori aplikasi / konfigurasi.
- Cari baris kod berikut
Tetapan konfigurasi pangkalan data
- Tetapkan nama pengguna ke root
- Tetapkan kata laluan ke kata laluan root localhost anda
- Nama pangkalan data untuk pendapat_poll. Perhatikan bahawa kita akan menggunakan pangkalan data yang dibuat pada pelajaran sebelumnya.
- Simpan perubahan dan tutup fail.
Membuat Model Kami
Selanjutnya kita akan membuat model kita yang akan memperluas CI_Model. CI_Model adalah sebahagian daripada perpustakaan CodeIgniter. Model tersebut akan berada di aplikasi / model pendapat_poll_model.php
load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
DI SINI,
- "Class Opinion_poll_model memperluas CI_Model ..." adalah model kami yang memperluas CI_Model
- "... ibu bapa :: __construct ();" memanggil pembina CI_Model
- "$ This-> load-> database ();" memuatkan pustaka pangkalan data sehingga aplikasi kami dapat berinteraksi dengan pangkalan data
- "$ This-> db->" adalah rekod aktif CodeIgniter. Lihat pautan ini untuk maklumat lebih lanjut mengenai rekod aktif.
Membuat Pengawal Kita Mari buat pengawal sekarang. Kami akan menggunakan pengawal CodeIgniter lalai yang terletak di aplikasi / pengendali / welcome.php. Gantikan kod sumbernya dengan kod berikut.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>
DI SINI,
- "If (! Define ('BASEPATH')) exit ('Tidak dibenarkan akses skrip langsung');" memastikan pengguna tidak mengakses kelas pengawal secara langsung
- "Welcome class meluaskan CI_Controller ..." pengawal kami memperluas kelas CI_Controller
- "Fungsi awam __konstruk ()" memanggil kaedah kontraktor kelas CI_Controller dan memuatkan model Opinion_poll_model kami
- "Public function index () ..." adalah fungsi yang memetakan ke index.php. ia menggunakan kelas input CodeIgniter untuk memeriksa apakah suara telah diserahkan, menambahkannya ke pangkalan data kemudian memaparkan hasilnya. Sekiranya susunan pos kelas input kosong, ia memuatkan halaman pengundian.
- "$ This-> input-> post ('...')" adalah kelas input CodeIgniter yang mengambil kandungan pemboleh ubah global $ _POST.
- "$ This-> comment_poll_model-> add_vote ($ this-> input-> post ('vote'))" memanggil kaedah add_vote model untuk menambahkan suara ke dalam pangkalan data.
Membuat Pandangan Kami
Ingat dari contoh sebelumnya bahawa kami mempunyai dua halaman HTML, satu untuk mengundi dan yang lain untuk hasil. Kami akan menggunakan kod HTML yang sama dengan pengubahsuaian minimum untuk membuat pandangan kami. Buat fail berikut dalam direktori aplikasi / paparan
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Mari sekarang buat hasil halaman hasil.php
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Menguji aplikasi kami
Dengan andaian direktori root aplikasi anda adalah ciopinion, layari ke http: // localhost / ciopionpoll /
Klik pada butang OK, anda akan melihat mesej amaran berikut
Undi calon kegemaran anda kemudian klik OK Anda akan melihat halaman hasil berikut
Kesimpulannya
CodeIgniter adalah kerangka kerja PHP MVC yang mudah dipelajari dan dapat mengurangkan masa yang dihabiskan untuk membangunkan aplikasi.
Ringkasan
- Kerangka kerja adalah sekumpulan perpustakaan yang menyediakan sebagian pelaksanaan tugas bersama.
- PHP mempunyai sejumlah kerangka kerja terbuka dan teruji MVC sumber terbuka.
- Pendekatan pengembangan yang baik memisahkan data dari persembahan dan mendorong penggunaan titik masuk tunggal ke dalam aplikasi.
- Aplikasi PHP tradisional yang mengikuti amalan terbaik reka bentuk aplikasi boleh dibawa ke kerangka kerja MVC dengan pengubahsuaian minimum.