Parameter di Rute dalam MVC di PHP
Dalam pelajaran sebelumnya, rute kita memiliki alamat tetap. Sebenarnya mekanisme perutean lebih rumit - kita dapat membuat bagian dari URI halaman masuk ke dalam parameter bernama, yang kemudian dapat diakses di controller.
Misalnya, anggap alamat kita akan terlihat
seperti ini: /test/param1/param2/,
di mana param1 dan param2 adalah string
acak. Pada saat yang sama, kita ingin alamat seperti ini
diproses oleh satu tindakan controller.
Untuk melakukan ini, kita harus membuat nama parameter
dan di depannya beri titik dua, seperti ini:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Dalam kasus kita, akan berakibat bahwa semua permintaan
berbentuk /test/parameter1/parameter2/
akan masuk ke tindakan act. Pada
saat itu, parameter pertama dari tindakan ini akan
berisi array asosiatif dengan parameter:
teks, yang akan berada di tempat parameter pertama,
masuk ke elemen array dengan kunci 'var1',
dan teks parameter kedua - ke 'var2'.
Misalnya, yang berikut ini dimasukkan ke dalam
baris alamat: /test/eee/bbb/. Mari
kita lihat apa yang akan dikandung oleh parameter pertama
tindakan:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
Buat controller NumController,
dan di dalamnya - tindakan sum. Biarkan
tindakan ini memproses alamat berikut jenisnya:
/nums/:n1/:n2/:n3/, di mana parameternya
adalah beberapa angka. Buat agar
di layar ditampilkan jumlah angka yang dikirim.