CodeContoh Framework Igniter MVC (Model View Controller)
โก Ringkasan Cerdas
CodeIgniter MVC Framework membagi aplikasi menjadi Model, View, dan Controller. Model menangani data dan logika bisnis, controller mengkoordinasikan permintaan, dan view menyajikan hasilnya, sehingga memberikan keterkaitan yang longgar, fleksibilitas, dan produktivitas pengembang yang lebih tinggi.

Apa itu MVC?
MVC adalah singkatan dari Model-View-Controller. Ini adalah pola arsitektur yang membagi aplikasi menjadi tiga komponen utama:
- Model ini menangani logika bisnis dan interaksi basis data.
- Controller mengoordinasikan aktivitas antara model dan view.
- View bertanggung jawab atas penyajian data.
Berikut beberapa keunggulan dari pola arsitektur MVC:
- Kopling longgar โ komponen-komponen tersebut ada dan berfungsi secara independen satu sama lain.
- Fleksibilitas โ Anda dapat dengan mudah melakukan perubahan pada komponen individual.
- Produktivitas meningkat โ lebih dari satu orang dapat mengerjakan proyek secara bersamaan. Pengembang front-end dapat mengerjakan tampilan dan presentasi, sementara pengembang back-end fokus pada model, dan karena sistemnya terhubung secara longgar, semuanya akan bekerja bersama pada akhirnya.
Pilih Model
Model bertanggung jawab untuk berinteraksi dengan sumber data. Biasanya ini berupa basis data, tetapi bisa juga berupa layanan yang menyediakan data yang diminta. Selain itu, praktik umum adalah menyimpan logika bisnis di dalam model, bukan di controller. Praktik ini biasanya disebut "model gemuk, controller kurus".
Model biasanya menulis data ke dalam basis data dan menyediakan mekanisme untuk mengedit, memperbarui, dan menghapus data. Dalam aplikasi web modern, model menggunakan pola desain akses data seperti Active Record untuk mempermudah interaksi dengan basis data.
Sebagai contoh, CodeIgniter menggunakan pustaka Active Record bawaan untuk membantu model, sementara framework lain seperti Laravel menggunakan Eloquent Object Relational Mapper (ORM) untuk akses data.
pengawas
Controller mendengarkan permintaan masuk untuk sumber daya dari pengguna. Ia bertindak sebagai perantara antara model dan tampilan, dan terkadang juga mengimplementasikan beberapa aturan bisnis. Misalnya, controller menerima permintaan untuk mendaftarkan pengguna ke dalam basis data.
Pengontrol dapat melakukan validasi data pada data yang telah dikirimkan untuk memastikan semua parameter yang dibutuhkan ada. Jika ada yang hilang, pengguna akan dialihkan ke halaman pendaftaran dengan pesan kesalahan yang sesuai. Pengontrol juga dapat meminta model untuk melakukan validasi lebih lanjut, seperti memeriksa apakah alamat email yang dikirimkan sudah ada. Jika semua aturan validasi berhasil, pengontrol mengirimkan data ke model untuk diproses dan menunggu respons.
Setelah model memproses informasi dan mengembalikan respons positif, pengontrol memuat tampilan yang sesuai dan meneruskan data yang dikembalikan dari model sebagai parameter.
Liha
Tampilan berkaitan dengan data yang disajikan kepada pengguna akhir. Dalam aplikasi web, tampilan sering kali berisi HTML, CSS, dan opsional JavaNaskahView berisi kode pemrograman minimal, biasanya hanya cukup untuk mengulang kumpulan data yang diterima dari model, atau fungsi pembantu untuk membersihkan data atau membuat tautan edit. Sebagian besar aplikasi web modern menggunakan mesin templat dengan sintaks seperti pseudocode sendiri yang dapat dipahami oleh perancang. Saat bekerja dengan CodeDi Igniter, praktik umum adalah menggunakan tag PHP pendek dan struktur kontrol. Untuk menampilkan sesuatu di CodeIgniter, Anda dapat menggunakan kode berikut:
<?=$title?>
Berbeda dengan:
<?php
echo $title;
?>
Struktur kontrol biasanya ditulis sebagai berikut:
<?php foreach ($customers as $customer): ?> <li> <p><?=$customer->first_name?></p> </li> <?php endforeach; ?>
Seperti yang Anda lihat dari contoh di atas, tampilan tersebut menggunakan kombinasi dari PHP dan HTML alih-alih menyertakan semuanya dalam kode PHP murni.
Cara Kerja Kerangka Kerja MVC
Gambar berikut menunjukkan cara kerja kerangka kerja MVC.
Pengontrol menerima permintaan dari pengguna, berinteraksi dengan model basis data jika diperlukan, kemudian mengembalikan hasilnya ke peramban dalam bentuk kode HTML, yang kemudian diinterpretasikan oleh peramban ke dalam format yang mudah dibaca manusia dan ditampilkan kepada pengguna.
CodePengontrol Penyala
Sekarang mari kita uraikan apa yang terjadi ketika kita memuatnya URL Buka browser web. Buka file controller Welcome.php yang terletak di application/controllers. Anda akan melihat kode berikut:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Sini:
- defined('BASEPATH') OR exit('No direct script access allowed'); mencegah akses langsung ke controller jika permintaan tidak datang melalui index.php. Ini untuk tujuan keamanan.
- class Welcome extends CI_Controller {โฆ} mendefinisikan kelas controller Welcome dan memperluas kelas induk CI_Controller.
- public function index(){โฆ} mendefinisikan metode indeks yang merespons URL
http://localhost:3000. - $this->load->view('welcome_message'); memuat tampilan welcome_message yang terletak di direktori application/views.
Sekarang kita akan memperbarui metode indeks sebagai berikut:
public function index()
{
$this->load->model('customers_model');
$data['customer'] = $this->customers_model->get_customer(3);
$this->load->view('welcome_message',$data);
}
Sini:
- $ini->beban->model('model_pelanggan'); memuat model pelanggan.
- $data['customer'] = $this->customers_model->get_customer(3); memanggil metode get_customer dari customers_model dan meneruskan parameter 3. Dalam contoh ini, kita telah menetapkan nilai secara langsung (hard-coded), tetapi dalam aplikasi nyata, ini akan menjadi parameter dari URI.
- $this->load->view('welcome_message',$data); memuat tampilan welcome_message dan meneruskan variabel $data.
CodeModel Penyala
Sekarang mari kita buat model yang dirujuk dalam kode di atas. Untuk menyederhanakan, model kita tidak akan berinteraksi dengan Database Namun, ini akan mengembalikan catatan pelanggan statis. Kita akan bekerja dengan basis data di tutorial berikutnya. Buat file Customers_model.php di application/models dan tambahkan kode berikut:
<?php class Customers_model extends CI_Model { public function get_customer($id) { $data['id'] = 3; $data['first_name'] = 'John'; $data['last_name'] = 'Doe'; $data['address'] = 'Kingstone'; return $data; } }
Sini:
- class Customers_model extends CI_Model {โฆ} mendefinisikan model Customers_model yang memperluas CI_Model.
- public function get_customer($id) {โฆ} mendefinisikan metode get_customer berdasarkan id pelanggan.
- $data[โฆ] mendefinisikan nilai statis dari pelanggan fiktif kita. Ini seharusnya merupakan baris yang dikembalikan dari basis data.
- kembalikan $data; mengembalikan data pelanggan.
Demikianlah model kita. Sekarang mari kita modifikasi tampilan welcome_message. Buka welcome_message.php yang terletak di:
application/views/welcome_message.php
Ganti kode tersebut dengan yang berikut ini:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CodeIgniter MVC Basics</title> </head> <body> <h1>Customer Details Card</h1> <p>Customer ID : <strong><?=$customer['id']?></strong></p> <p>First Name : <strong><?=$customer['first_name']?></strong></p> <p>Last Name : <strong><?=$customer['last_name']?></strong></p> <p>Address : <strong><?=$customer['address']?></strong></p> </body> </html>
Simpan perubahan dan muat yang berikut ini URL di peramban web: http://localhost:3000/Anda seharusnya melihat kartu pelanggan seperti yang ditunjukkan pada gambar di bawah ini.


