Mengelompokkan Route Laravel ke Dalam Beberapa Berkas


Route dalam Laravel itu sangat powerful, tapi juga cukup merepotkan. Pasalnya, kita harus mendaftarkan satu persatu method yang ada pada controller, apalagi kalau controller yang kita daftarkan jumlahnya sudah mencapai ratusan.

Ada satu trik yang biasa saya gunakan ketika jumlah route dalam Laravel sudah tidak bisa dihitung dengan jari, yaitu memisahkan route tersebut ke dalam beberapa berkas terpisah berdasar kategori module atau controller-nya.

Dengan asumsi menggunakan Laravel versi 5.3, maka berkas yang berhubungan dengan route berada pada pada direktori paling luar aplikasi, yaitu routes/web.php dan routes/api.php. Sedangkan untuk Laravel 5.2, maka berkas yang berhubungan dengan route berada dalam direktori app/Http/routes.php.

Secara garis besar, langkah yang akan dilakukan adalah seagai berikut:

  • Buat direktori baru dalam direktori routes dengan nama Web.
  • Buat satu atau lebih berkas PHP dalam direktori Web. Umumya, satu berkas route mewakili satu controller atau satu module.
  • Definisikan route dari controller pada berkas-berkas yang sudah dibuat.
  • Muat berkas route tersebut pada berkas route utama bawaan Laravel, yaitu routes/web.php.

Adapun urutan lengkap langkah di atas adalah sebagai berikut:

Membuat Direktori

// membuat direktori baru dengan nama Web
$ mkdir routes/Web
// pindak ke direktori tersebut untuk membuat berkas baru
$ cd routes/Web

Untuk lebih mudahnya dalam membuat direktori, dapat juga menggunakan File Explorer bawaan sistem operasi.

Membuat Berkas & Mendefinisikan Route

Dalam contoh kali ini, terdapat dua berkas yang akan saya buat, yaitu: routes/Web/App.php dan routes/Web/Home.php. Adapun isi masing-masing dari kedua berkas tersebut adalah sebagai berikut:

<?php 
// routes/Web/App.php 
Route::get('app/index', 'AppController@getIndex')->name('app.index');
Route::get('app/other', 'AppController@getOther')->name('app.other');

Sedangkan route lainnya dapat ditulis seperti ini:

<?php 
// routes/Web/Home.php 
Route::get('/', 'HomeController@getIndex')->name('index');

Memuat Berkas Route ke Dalam Route Bawaan

Kedua berkas di atas masih belum dapat digunakan karena masih berdiri sendiri. Agar route tersebut dapat dikenali dan digunakan oleh framework, kita harus mendaftarkannya pada route bawaan Laravel dengan cara memasukkan kedua berkas tersebut menggunakan fungsi include().

include __DIR__.'/Web/App.php';
include __DIR__.'/Web/Home.php';

Untuk memastikan route yang telah kita buat sudah terdaftar, dapat dicek melalui artisan dengan perintah:

php artisan route:list

Jalankan built-in web server, kemudian akses melalui peramban favorit kalian, apakah route sudah berjalan sebagaimana mestinya? 😀

Tak Berkategori

Yugo Purwanto

Pemrogram PHP dan JavaScript yang sedang sibuk mengembangkan aplikasi Glosarium Bahasa Indonesia.

Tinggalkan Balasan