Struktur Route Laravel pada Projek Besar

Struktur Route Laravel – Bayangkan kalian mempunyai projek dengan 100+ routes, lalu di pisah dengan section untuk guest, user, administrator, dll. Apakah kalian akan menggabungkannya menjadi satu file ? bagaimana caranya kalian mengelompokkan hal tersebut, menambahkan prefix ke URL ? Artikel kali ini akan membahas struktur route laravel

1. Pisahkan WEB dan API Routes

Sebenarnya ini fitur bawaan default laravel. Jika kalian menginstall laravel, akan terdapat 2 file yaitu

  • routes/web.php
  • routes/api.php

jika kalian mempunyai halaman terpisah dan terdapat API, letakkan route API tersebut di file terpisah.

misal, jika kalian memiliki halaman /users dan /api/users , maka pisahakan keduanya di file tersendiri agar mudah dan tidak bingung dengan nama yang sama dan file yang sama

2. Struktur routes/web.php File ke dalam Grup

Sebenarnya ini adalah basic laravel yaitu route grouping, contoh laravel route grouping dari official dokumentasi nya :

Penggunaan paling dasar adalah menyembunyikan grup yang berbeda di bawah middleware yang berbeda. Misalnya kalian ingin satu grup di batasi oleh middleware auth default dan grup lainnya di batasi oleh kustom middleware dll. Dengan demikian kalian dapat menggunakan Route group names and prefixes. Ini salah satu contoh dari dokumentasi laravel :

jika kalian ingin menambahkan semua middleware+name+prefix ke dalam satu group, lebih enak di baca jika menggunakan array :

mari kita gabung semuanya menjadi satu dan tiga group

  • “Guest” group dengan /front/XXXXX URLs dan tidak ada middleware;
  • “User” group dengan /user/XXXXX URLs dan auth middleware;
  • “Admin” group dengan /admin/XXXXX URLs dan kustom admin middleware.

Ini salah satu contoh untuk menggabungkan semua ke dalam routes/web.php :

3. Grouping Controller dengan Namespace

Pada contoh di atas, kita tidak memerlukan controller, kita hanya menggunakan teks statis sebagai contoh. Selanjutnya kita tambahkan controller dan letakkan controller tersebut di folder ‘front’, lalu tambahkan namespace dengan nama ‘front’ seperti berikut :

Dan kita akan menuliskan route nya seperti ini :

tapi, bagaimana jika mempunyai banyak controller di group tersebut ? apakah kita tetap menambahkan Front\ContoController setiap saat ? tentu tidak. kalian bisa menambahkan parameter namespace di route group nya seperti berikut :

4. Group dalam Group

Contoh di atas, hanya dengan tiga group. di real case projek terdapat banyak sekali module. untuk mengelompokkannya bisa menggunakan group dalam group.  Contoh nya seperti berikut :

Kita bisa menambahkan nya dengan level yang lebih dalam, berikut contoh dari projek opensource Akunting. 

Contoh lain dari projek opensource Monica

5. Global Setting di RouteServiceProvider

File ini mengatur semua settingan route dengan menggunakan method map() yang bind kedua routes file web.php dan api.php

Pernahkan kalian melihat middleware, namespace dan prefix yang di sebutkan pada awalan method ? di situlah kalian dapat mengatur pengaturan global untuk seluruh file routes, jadi kalian tidak mengulan penulisan nya pada routes group. Bisanya hal ini di gunakan pada API file, karena pengaturannya sama seperti ini :

method di atas akan mengawali semua URL API dengan api/v1 di awalannya

6. Temukan route yang tepat dengan perintah Artisan

Kalian pasti tahu dengan perintah “php artisan route:list”. Perintah tersebut akan menampilkan semua routes yang ada pada projek.

burem ya 🙂

Tapi apakah kalia tahu terdapat parameter lain pada penggunaan route:list seperti -method, -name, atau -path.

Filter by Method Get :

 

Filter by Name Obat :

Semoga artikel ini membantu untuk kalian mengelompokkan route pada projek besar

You May Also Like