Implementasi Router dalam Framework MVC Sendiri
Sekarang mari kita tulis kerangka kelas Router
sesuai dengan panggilan kita:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// kode akan ada di sini
}
}
?>
Dalam metode getTrack kita harus menentukan
rute mana yang sesuai dengan $uri ini.
Untuk melakukan ini, kita perlu mengulang array rute kita
dengan loop:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// memeriksa $uri dan $route
}
}
}
?>
Jika suatu rute sesuai dengan URI, kita
harus mendapatkan nilai parameter
dari URI ini dan mengembalikan objek kelas Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (pemeriksaan kecocokan rute dan URI) {
$params = ; // perlu mendapatkan parameter dari uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // jika tidak ada rute yang cocok
}
}
?>
Salin kerangka kelas Router saya
dan letakkan di file /core/Router.php.
Implementasikan kelas Router yang dijelaskan,
yang mengembalikan objek kelas
Track sebagai hasilnya. Jika Anda mengalami kesulitan
(sangat mungkin), lihat kode sumber
framework yang Anda pelajari untuk penggunaan
MVC. Di sana, dalam kelas Router Anda akan menemukan
bagian implementasi yang hilang dan komentar saya
tentangnya.