Penjelasan Routing dan Controller di CodeIgniter 4
Routing dan controller adalah bagian inti dari framework CodeIgniter 4 (CI4). Routing menentukan bagaimana URL tertentu dihubungkan ke logika aplikasi, sedangkan controller berfungsi sebagai pengelola utama logika tersebut. Artikel ini akan membahas cara kerja routing dan controller di CI4 secara rinci.
1. Apa Itu Routing di CI4?
Routing adalah proses memetakan URL ke fungsi tertentu di dalam aplikasi. Dengan routing, Anda dapat mengatur URL yang ramah pengguna dan fleksibel.
1.1 Konfigurasi Dasar Routing
Routing di CI4 diatur di file app/Config/Routes.php
. Berikut adalah contoh rute sederhana:
$routes->get('/', 'Home::index');
/
: URL root dari aplikasi.Home::index
: Memanggil metodeindex
di controllerHome
.
1.2 Jenis Rute
Berikut adalah jenis rute yang didukung CI4:
- GET: Untuk mengambil data. Contoh:
$routes->get('/about', 'Pages::about');
- POST: Untuk mengirimkan data. Contoh:
$routes->post('/submit', 'Form::submit');
- PUT: Untuk memperbarui data. Contoh:
$routes->put('/update', 'Data::update');
- DELETE: Untuk menghapus data. Contoh:
$routes->delete('/delete', 'Data::delete');
1.3 Parameter di Routing
Anda dapat menggunakan parameter dinamis dalam rute. Contoh:
$routes->get('/user/(:num)', 'User::profile/$1');
Rute ini akan menangkap angka setelah /user/
dan meneruskannya ke metode profile
di controller User
.
2. Apa Itu Controller di CI4?
Controller adalah bagian dari aplikasi yang menangani logika bisnis. Controller di CI4 berada di direktori app/Controllers
.
2.1 Membuat Controller
Untuk membuat controller, jalankan perintah berikut di terminal:
php spark make:controller Example
Controller akan dibuat di app/Controllers/Example.php
:
<?php
namespace App\Controllers;
class Example extends BaseController {
public function index() {
return 'Hello, World!';
}
}
?>
2.2 Menghubungkan Controller dengan Routing
Tambahkan rute di file Routes.php
untuk menghubungkan controller:
$routes->get('/example', 'Example::index');
Ketika pengguna mengakses /example
, metode index
di controller Example
akan dijalankan.
2.3 Controller dengan Parameter
Contoh controller yang menerima parameter:
<?php
namespace App\Controllers;
class User extends BaseController {
public function profile($id) {
return "User ID: $id";
}
}
?>
Tambahkan rute berikut:
$routes->get('/user/(:num)', 'User::profile/$1');
3. Fitur Tambahan Routing dan Controller
3.1 Grup Routing
Anda dapat mengelompokkan rute dengan grup:
$routes->group('admin', function($routes) {
$routes->get('dashboard', 'Admin::dashboard');
$routes->get('profile', 'Admin::profile');
});
URL seperti /admin/dashboard
akan diarahkan ke controller Admin
.
3.2 Middleware
Tambahkan middleware untuk melindungi rute tertentu:
$routes->get('/dashboard', 'Dashboard::index', ['filter' => 'auth']);
4. Tips dan Best Practice
- Gunakan nama rute yang deskriptif untuk mempermudah pemeliharaan aplikasi.
- Modularisasi controller berdasarkan fitur atau modul aplikasi.
- Gunakan grup routing untuk URL yang memiliki struktur serupa.
Kesimpulan
Routing dan controller adalah bagian penting dalam pengembangan aplikasi menggunakan CodeIgniter 4. Dengan memahami keduanya, Anda dapat membuat aplikasi yang terstruktur, efisien, dan mudah dikelola.