Apa itu kerangka kerja PHP MVC?
PHP MVC adalah pola desain aplikasi yang memisahkan data aplikasi dan logika bisnis (model) dari penyajian (tampilan). MVC adalah singkatan dari Model, View & Controller.
Pengontrol menengahi antara model dan tampilan.
Pikirkan pola desain MVC sebagai mobil dan pengemudi.
Mobil memiliki kaca depan (tampilan) yang digunakan pengemudi (pengontrol) untuk memantau lalu lintas di depan kemudian kecepatan atau rem (model) tergantung pada apa yang dilihatnya di depan.
Mengapa menggunakan PHP MVC Framework?
- Framework PHP MVC menyederhanakan bekerja dengan teknologi yang kompleks dengan;
- Menyembunyikan semua detail implementasi yang kompleks
- Menyediakan metode standar yang dapat kita gunakan untuk membangun aplikasi kita.
- Peningkatan produktivitas pengembang, ini karena implementasi dasar dari aktivitas seperti menghubungkan ke database, membersihkan input pengguna, dll. Sudah diterapkan sebagian.
- Kepatuhan terhadap standar pengkodean profesional
Dalam tutorial ini, Anda akan belajar-
- Pola Desain PHP MVC
- Jenis kerangka PHP MVC
- Porting aplikasi polling opini ke CodeIgniter
- Pengaturan konfigurasi database
- Membuat Model Kami
- Menciptakan Pandangan Kami
- Menguji aplikasi kita
Pola Desain PHP MVC
Sekarang mari kita bahas secara singkat setiap komponen pola desain MVC.
Model - bagian ini berkaitan dengan logika bisnis dan data aplikasi. Ini dapat digunakan untuk melakukan validasi data, memproses data, dan menyimpannya. Data tersebut dapat berasal dari;
- file datar
- database
- Dokumen XML
- Sumber data valid lainnya.
Pengontrol - ini adalah bagian yang berhubungan dengan permintaan pengguna untuk sumber daya dari server.
Sebagai contoh, ketika pengguna meminta URL… /index.php?products=list, pengontrol akan memuat model produk untuk mengambil data produk kemudian menampilkan hasilnya dalam tampilan daftar.
Singkatnya, pengontrol menghubungkan model dan tampilan bersama-sama tergantung pada sumber daya yang diminta.
Tampilan - bagian ini berkaitan dengan penyajian data kepada pengguna. Ini biasanya dalam bentuk halaman HTML.
Jenis kerangka PHP MVC
Memilih kerangka kerja PHP terbaik adalah sebuah tantangan.
Anda tidak perlu menulis kerangka kerja Anda sendiri untuk memanfaatkan keunggulan MVC.
Anda hanya boleh mencoba membuat desain aplikasi terkait MVC Anda sendiri untuk memahami cara kerja kerangka kerja MVC.
Setelah Anda merasa nyaman dengan cara kerja kerangka kerja MVC, Anda harus beralih ke kerangka kerja yang matang dan sudah teruji.
Tabel di bawah ini menjelaskan secara singkat beberapa framework php populer dan fitur yang ditawarkan oleh setiap framework.
Kerangka | Deskripsi |
---|---|
CodeIgniter https://codeigniter.com/ | Ini adalah salah satu framework PHP MVC paling populer. Ringan dan memiliki kurva belajar yang pendek. Ini memiliki seperangkat perpustakaan kaya yang membantu membangun situs web dan aplikasi dengan cepat. Pengguna dengan pengetahuan terbatas tentang pemrograman OOP juga dapat menggunakannya. Aplikasi yang didukung CodeIgniter meliputi;
|
Kohana http://kohanaframework.org | Ini adalah kerangka kerja HMVC yang aman dan ringan dengan Hierarchical Model View Controller HMVC. Ini memiliki seperangkat komponen yang kaya untuk mengembangkan aplikasi dengan cepat. Perusahaan yang menggunakan Kohana meliputi;
|
CakePHP www.cakephp.org | Ini dimodelkan setelah Ruby on rails. Ini dikenal untuk konsep seperti pola desain perangkat lunak, konvensi atas konfigurasi, ActiveRecord, dll. Aplikasi yang didukung CakePHP meliputi;
|
www.framework.zend.com Zend | Ini adalah kerangka kerja yang kuat yaitu;
|
Porting aplikasi polling opini ke CodeIgniter
Dalam tutorial ini, kami membuat aplikasi polling PHP. Di sini, kami akan mem-port kode itu ke CodeIgniter
- Unduh CodeIgniter versi terbaru dari situs web mereka.
- Ekstrak konten file zip ke direktori pengembangan Anda di direktori server web Anda. Kami akan menggunakan ciopinionpoll sebagai nama folder dalam pelajaran ini.
- Jelajahi ke URL http: // localhost / ciopinionpoll /
Kami sekarang akan mem-port aplikasi jajak pendapat kami ke CodeIgniter. Ingatlah bahwa aplikasi kita dibagi menjadi tiga komponen utama yaitu;
- Pengontrol depan - ini adalah bagian yang menanggapi permintaan URL dan mengembalikan halaman yang diminta. Kode ini akan masuk ke pengontrol
- Model - ini adalah kode yang menanggapi data yang diminta dan mengembalikan data yang diminta. Kode ini akan masuk ke model
- Tampilan - ini adalah kode yang bertanggung jawab untuk memformat dan menampilkan data. Kode ini akan masuk ke tampilan
- Jelajahi folder ciopinionpoll
- Buka file database.php yang terletak di direktori application / config.
- Temukan baris kode berikut
Pengaturan konfigurasi database
- Setel nama pengguna menjadi root
- Setel kata sandi ke kata sandi root localhost Anda
- Nama database menjadi opinion_poll. Perhatikan bahwa kita akan menggunakan database yang dibuat pada pelajaran sebelumnya.
- Simpan perubahan dan tutup file.
Membuat Model Kami
Selanjutnya kita akan membuat model yang akan memperluas CI_Model. CI_Model adalah bagian dari pustaka CodeIgniter. Model akan ditempatkan di application / models opinion_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
SINI,
- “Class Opinion_poll_model extends CI_Model…” adalah model kami yang memperluas CI_Model
- “… Induk :: __construct ();” memanggil konstruktor CI_Model
- “$ This-> load-> database ();” memuat pustaka database sehingga aplikasi kita dapat berinteraksi dengan database
- “$ This-> db->” adalah rekaman aktif CodeIgniter. Periksa tautan ini untuk informasi lebih lanjut tentang rekaman aktif.
Membuat Controller Kita Sekarang mari kita buat controllernya. Kami akan menggunakan kontroler CodeIgniter default yang terletak di application / controllers / welcome.php. Ganti kode sumbernya dengan kode 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 */?>
SINI,
- “if (!defined('BASEPATH')) exit('No direct script access allowed');” ensures that users do not directly access the controller class
- “class Welcome extends CI_Controller… ” our controller extends the CI_Controller class
- “public function __construct()” calls CI_Controller’s class contructor method and loads our Opinion_poll_model model
- “public function index()… ” is the function that maps to index.php. it uses CodeIgniter’s input class to check if a vote has been submitted, add it to the database then display the results. If the post array of the input class is empty, it loads the voting page.
- “$this->input->post('… ')” is the CodeIgniter input class that grabs the contents of the $_POST global variable.
- “$this->opinion_poll_model->add_vote($this->input->post('vote'))” calls the model’s add_vote method to add the vote into the database.
Creating Our Views
Recall from the previous example that we had two HTML pages, one for voting and the other for results. We will use the same HTML code with minimal modifications to create our views. Create the following files in application/views directory
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Let’s now create the results page results.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:
Testing our application
Assuming the root directory of your application is ciopinion, browse to http://localhost/ciopionpoll/
Click on OK button, you will see the following alert message
Vote for your favorite candidate then click on OK You will see the following results page
Conclusion
CodeIgniter adalah framework PHP MVC yang mudah dipelajari dan digunakan yang dapat sangat mengurangi waktu yang dihabiskan untuk mengembangkan aplikasi.
Ringkasan
- Kerangka kerja adalah sekumpulan pustaka yang menyediakan implementasi parsial dari tugas-tugas umum.
- PHP memiliki sejumlah kerangka kerja MVC open source yang matang dan teruji.
- Pendekatan pengembangan yang baik memisahkan data dari presentasi dan mendorong penggunaan titik masuk tunggal ke dalam aplikasi.
- Aplikasi PHP tradisional yang mengikuti praktik terbaik desain aplikasi dapat di-porting ke kerangka kerja MVC dengan sedikit modifikasi.