Pengembangan Router dalam Framework MVC Sendiri
Sekarang Anda perlu mengembangkan router. Ia merupakan kelas yang akan mengambil array rute, mengambil URL yang diminta, dan menentukan rute mana yang sesuai dengan URL tersebut. Setelah menemukan rute yang sesuai, kelas kita harus mendapatkan bagian-bagian URL yang sesuai dengan parameter rute.
Biarkan hasil dari router kita mengembalikan
objek kelas Track yang berisi nama
controller yang harus dipanggil untuk
permintaan tersebut, nama action, dan parameter dari URL.
Biarkan kelas Track kita memiliki properti
controller, action, dan params,
yang hanya dapat dibaca:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Contoh
Sebagai contoh, misalkan di address bar dimasukkan
/test/1/2/. Misalkan kita memiliki rute,
yang sesuai dengan alamat ini:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Ini berarti nama controller akan menjadi test,
nama action - index, dan array parameter
akan menjadi berikut:
<?php
['var1' => 1, 'var2' => 2]
?>
Tujuan pelajaran ini - menulis kelas Router,
yang mengembalikan objek kelas Track.
Sisanya belum menjadi perhatian kita. Mari kita mulai
menulis kelas ini.
Tugas Praktis
Salin kode kelas Track saya
dan tempatkan di file
/core/Track.php.