Tutorial Codeigniter 4: Memahami Routing dan Controller
Routing dan Controller..
Kedua hal ini wajib kamu pahami.
Mengapa?
Karena kedua hal inilah yang menjadi ‘penggerak’ dalam aplikasi.
Pada tutorial ini, kita akan belajar seputar Routing dan Controller pada Codeigniter 4.
Pastikan kamu menyimaknya sampai selesai agar benar-benar paham.
Baiklah…
Mari kita mulai!
Apa itu Routing dan Controller?
Routing adalah proses menentukan arah atau rute yang harus dilalui.
Pada framework CI4, routing bertujuan untuk menentukan Controller mana yang harus merespon sebuah request.
Controller adalah class atau script yang bertanggung jawab merespon sebuah request.
Ia bisa saja merespon dengan mengirimkan view, data JSON, data XML, atau bahkan tidak mengirimkan respon apapun.
Karena ada juga bagian dari Controller yang hanya bertugas menerima data dan menyimpannya ke database.
Coba perhatikan lagi gambar ini:
File index.php
adalah file entri point yang akan dieksekusi pertama kali saat aplikasi dibuka.
Request yang diterima oleh index.php
akan diserahkan ke Router. Lalu si Router akan menentukan Controller yang akan meresponnya.
Oh iya, jangan bingung dengan istilah routes, router, dan routing..
Berikut ini penjelasannya:
- Routes adalah kumpulan definisi routing;
- Router adalah script yang menentukan routing;
- Routing adalah proses menentukan rute.
Lalu, bagaimana cara kita membuat Routes di Codeigniter?
Mari kita bahas:
Membuat Routes di Codeigniter
Oke, sekarang coba lihat kembali kode aplikasi ci-news
.
Buka file app/config/Routes.php
.
Pada file Routes.php
, kita bisa mendefinisikan rute untuk aplikasi.
Coba perhatikan bagian ini:
$routes->get('/', 'Home::index');
Ini adalah rute untuk home page.
Bingung?
Coba perhatikan gambar berikut:
Sudah paham?
Bagus..
Sekarang mari kita coba membuat sebuah rute baru.
Tambahkan kode berikut di dalam Routes.php
:
$routes->get('/about', 'Page::about');
$routes->get('/contact', 'Page::contact');
$routes->get('/faqs', 'Page::faqs');
Nah, di sini kita membuat tiga buat rute baru. Pada rute ini kita memberikan tugas kepada controller Page
untuk merespon request pada rute tersebut.
Sehingga sekarang kode routes-nya menjadi seperti ini:
Untuk memastikan rute sudah dibuat dengan benar, coba ketik perintah:
php spark routes
Jika muncul seperti ini:
Maka pembuatan rute berhasil.
Selanjutnya kita harus membuat Controller Page.php
.
Membuat Controller
Silakan buat file baru di dalam folder app/Controllers
dengan nama Page.php
.
Pastikan kamu menggunakan huruf kapital di awal nama file. Karena ini sudah menjadi aturan pada Codeigniter.
Kemudian isi file Page.php
dengan kode berikut:
<?php namespace App\Controllers;
class Page extends BaseController
{
public function about()
{
echo "about page";
}
public function contact()
{
echo "contact page";
}
public function faqs()
{
echo "Faqs page";
}
}
Controller Page
memiliki tiga method, yakni about()
, contact()
, dan faqs()
.
Nama method ini mengikuti nama yang sudah kita tentukan di dalam rute. Jika kita menggunakan nama yang berbeda, maka ia tidak akan bisa dibuka.
Pada setiap method di Controller Page
, kita membuat respon dengan perintah echo
. Kita juga nanti bisa merespon dengan view.
Oke, sekarang mari kita tes hasilnya.
Silakan buka halaman berikut:
localhost:8080/about
localhost:8080/contact
localhost:8080/faqs
Hasilnya:
Bagus..
Rute yang kita buat berhasil dibuka.
Autoroute di Codeigniter 4
Pada Codeigniter 3, routing dilakukan secara otomatis dengan mengikuti nama Controller dan method-nya.
Pada Codeigniter 4, kita juga bisa mengaktifkan fitur ini dengan kode:
$routes->setAutoRoute(true);
Jika ingin menonaktifkan autoroute, tinggal ganti true
menjadi false
.
$routes->setAutoRoute(false);
Secara default, fitur autoroute sudah aktif.
Mari kita coba..
Tambahkan method tos()
pada Controller Page
dengan isi seperti ini:
public function tos()
{
echo "Halaman Term of Service";
}
Sehingga sekarang kode Controller Page
menjadi seperti ini:
<?php namespace App\Controllers;
class Page extends BaseController
{
public function about()
{
echo "about page";
}
public function contact()
{
echo "contact page";
}
public function faqs()
{
echo "Faqs page";
}
public function tos()
{
echo "Halaman Term of Service";
}
}
Ingat:
Method tos()
belum kita daftarkan di dalam Routes.php
. Namun, karena kita mengaktifkan autoroute, maka method ini bisa kita akses melalui:
localhost:8080/index.php/page/tos
Hasilnya:
Sekarang coba matikan fitur autoroute.
Pada kode app/Config/Routes.php
, berikan nilai false pada setAutoRoute()
.
$routes->setAutoRoute(false);
Maka sekarang method tos()
tidak akan bisa dibuka.
Ini karena kita mematikan fitur autoroute.
Sebaiknya pakai autoroute atau manual route?
Sebenarnya ini tergantung kita sebagai developer, jika tidak ingin repot-repot membuat rute maka baiknya pakai autoroute. Namun autoroute akan membuat semua method public di Controller akan bisa diakses.
Apa Selanjutnya?
Sebenarnya masih banyak lagi hal tentang routing yang harus diketahui. Namun, untuk tutorial basic.. saya cukupkan sampai di sini.
Nanti kita akan pelajari routing lebih lanjut, bersamaan dengan dengan pembahasan fitur Codeigniter lainnya.
Berikutnya kita akan belajar tentang View di Codeigniter.
Silakan lanjutkan ke:
Untuk tutorial CI lainnya, cek di 📚 List Tutorial Codeigniter