Penjelasan Routing dan Controller di CodeIgniter 4

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 metode index di controller Home.

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.

Check Also

Migrasi Database dengan CodeIgniter 4

Migrasi Database dengan CodeIgniter 4 CodeIgniter 4 menyediakan fitur migrasi database untuk mengelola perubahan skema …

Verified by MonsterInsights