การนำทางเส้นทางในเฟรมเวิร์ก MVC ของคุณ
ตอนนี้เรามาเขียนโครงร่างคลาส Router
ให้สอดคล้องกับการเรียกใช้งานของเรา:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// รหัสจะอยู่ที่นี่
}
}
?>
ในเมธอด getTrack เราต้องพิจารณาว่า
เส้นทางใดตรงกับ $uri ที่กำหนด
ในการทำเช่นนี้ จำเป็นต้องวนลูปผ่านอาร์เรย์เส้นทางของเรา:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// ตรวจสอบ $uri และ $route
}
}
}
?>
หากเส้นทางใดตรงกับ URI เราควร
ได้ค่าพารามิเตอร์ของเส้นทางจาก URI นั้น
และส่งคืนออบเจ็กต์ของคลาส Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (ตรวจสอบความสอดคล้องของเส้นทางและ URI) {
$params = ; // ต้องได้พารามิเตอร์จาก uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // หากไม่มีเส้นทางใดตรง
}
}
?>
คัดลอกโครงร่างคลาส Router ของฉัน
และวางไว้ในไฟล์ /core/Router.php
ดำเนินการสร้างคลาส Router ตามที่อธิบายไว้
โดยให้ผลลัพธ์ส่งคืนออบเจ็กต์ของคลาส
Track หากคุณประสบปัญหา
(ซึ่งเป็นไปได้มาก) คุณสามารถดูในซอร์สโค้ด
ของเฟรมเวิร์กที่คุณใช้ศึกษาการทำงานของ MVC ได้
ในคลาส Router นั้น คุณจะพบ
ส่วนของการดำเนินการที่ขาดหายไปและคำอธิบายของฉัน
เกี่ยวกับมัน