Pengaturan Rute

Biasanya ada hubungan satu-ke-satu antara string URL dan kelas/metode pada Controller yang sesuai. Segmen dalam URI biasanya mengikuti pola ini:

example.com/class/method/id/

Namun, dalam beberapa kasus, Anda mungkin ingin memetakan kembali hubungan ini sehingga kelas/fungsi yang berbeda dapat dipanggil alih-alih yang terkait dengan URL.

Misalnya, katakanlah Anda ingin URL Anda memiliki prototipe ini:

  • example.com/product/1/
  • example.com/product/2/
  • example.com/product/3/
  • example.com/product/4/

Biasanya segmen kedua dari URL dicadangkan untuk nama fungsi, tetapi dalam contoh di atas, ia diisi dengan ID produk. Untuk mengatasinya, Seme Framework memungkinkan Anda untuk memetakan ulang URL tersebut terhadap metode atau kelas Controller yang diinginkan.


Menyetel Perutean URI khusus

Aturan perutean ditentukan di app/config/ Anda. Anda dapat mengatur perutean ini diterapkan ke dalam produksi, staging, atau pengembangan tergantung pada kebutuhan Anda.

Pada setiap file konfigurasi, Seme Framework telah membuat bagian komentar untuk menulis ulang URI di bagian perutean.

Pada setiap file yang dikonfigurasi, Seme Framework telah membuat bagian komentar untuk menulis ulang URI di bagian perutean.


Wildcards

Rute wildcard tipikal mungkin terlihat seperti ini:

$routes['product/:num'] = "katalog/detail";

Dalam sebuah rute, kunci array berisi URI yang akan dicocokkan. Sedangkan pada nilai array berisi tujuan yang harus dirutekan ulang. Dalam contoh di atas, jika kata literal "produk" ditemukan di segmen pertama URL dan nomor ditemukan di segmen kedua. Maka kelas "katalog" dan metode "detail" akan digunakan.

Anda dapat mencocokkan nilai literal atau Anda dapat menggunakan dua jenis wildcard:

  • (:num) akan cocok dengan segmen yang hanya berisi angka.
  • (:any) akan cocok dengan segmen yang berisi karakter apa pun.

Catatan

Rute akan berjalan sesuai urutan yang ditentukan. Rute yang lebih tinggi akan selalu didahulukan dari yang lebih rendah.

Contoh

Berikut adalah beberapa URI - Konfigurasi pemetaan ulang rute pengontrol.

$routes['produk'] = "products";

URL yang berisi kata "produk" di segmen pertama akan dipetakan ulang ke kelas "products".

$routes['produk/ojan'] = "products/detail/15";

URL yang berisi segmen produk/ojan akan dipetakan kembali ke kelas "produk" dan metode "detail". ID akan disetel ke "15".

$routes['product/(:any)'] = "katalog/pencarian_produk";

URL dengan "produk" sebagai segmen pertama, dan apa pun di segmen kedua akan dipetakan ulang ke kelas "katalog" dan metode "pencarian_produk".

$routes['produk/(:num)'] = "katalog/detail/$1";

URL dengan "produk" sebagai segmen pertama, dan nomor di segmen kedua akan dipetakan ulang ke kelas "katalog" dan metode "detail" meneruskan kecocokan sebagai variabel ke fungsi.

Penting

Jangan gunakan garis miring di depan/di belakang.


Rute Cadangan

Ada dua rute yang cadangan yang sudah dipakai:

$routes['home'] = 'home';

Rute ini menunjukkan kelas controller mana yang harus dimuat jika URI tidak berisi data, yang akan terjadi ketika orang memuat URL root Anda. Dalam contoh di atas, kelas "selamat datang" akan dimuat. Anda dianjurkan untuk selalu memiliki rute default jika tidak, halaman 404 akan muncul secara default.

$routes['notfound'] = 'notfound';

Rute ini menunjukkan kelas pengontrol mana yang harus dimuat jika pengontrol yang diminta tidak ditemukan. Secara default akan dijalankan app/controller/notfound.php. Anda dapat mengubahnya jika perlu.

Penting

Code Rute cadangan harus berada pada sebelum rute wildcard.

Rute cadangan lainnya adalah rute rahasia admin, pelajari selengkapnya tentang rute untuk admin.