Pelaksanaan Router dalam Kerangka 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)
{
// kod akan berada di sini
}
}
?>
Dalam kaedah getTrack, kita perlu menentukan
route mana yang sepadan dengan $uri ini.
Untuk ini, kita perlu mengulangi array route kita
dengan gelung:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// semak $uri dan $route
}
}
}
?>
Jika sesetengah route sepadan dengan URI, kita
perlu mendapatkan nilai parameter route
dari URI ini dan mengembalikan objek kelas Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (semakan kesesuaian route dan URI) {
$params = ; // perlu dapatkan parameter dari uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // jika tiada route yang sesuai
}
}
?>
Salin rangka kelas Router saya
dan letakkannya dalam fail /core/Router.php.
Laksanakan kelas Router yang diterangkan,
mengembalikan objek kelas Track sebagai hasilnya.
Jika anda mengalami kesukaran (yang sangat mungkin),
lihat kod sumber kerangka yang anda pelajari penggunaannya
MVC. Di sana, dalam kelas Router, anda akan menemui
bahagian pelaksanaan yang hilang dan ulasan saya
mengenainya.