การพัฒนารูเตอร์ใน MVC framework ของคุณ
ตอนนี้คุณต้องพัฒนา รูเตอร์ มันคือคลาสที่จะ รับอาเรย์ของเส้นทาง (route) รับ URL ที่ร้องขอ และกำหนดว่าเส้นทางใดตรงกับ URL นั้น หลังจากพบเส้นทางที่ตรงกันแล้ว คลาสของเราต้องได้ส่วนของ URL ที่ตรงกับพารามิเตอร์ของเส้นทาง
ให้ผลลัพธ์ที่รูเตอร์ของเราคืนค่าเป็น
ออบเจ็กต์ของคลาส Track ซึ่งประกอบด้วยชื่อ
คอนโทรลเลอร์ที่ควรถูกเรียกสำหรับ
คำร้องขอนี้ ชื่อแอ็กชัน และพารามิเตอร์จาก URL
ให้คลาส Track ของเรามีคุณสมบัติ
controller, action และ params
ที่สามารถอ่านได้อย่างเดียว:
<?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;
}
}
?>
ตัวอย่าง
ตัวอย่าง สมมติว่าในแถบที่อยู่พิมพ์
/test/1/2/ สมมติว่าเรามีเส้นทาง
ที่ตรงกับที่อยู่นี้:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
นั่นหมายความว่าชื่อคอนโทรลเลอร์จะเป็น test
ชื่อแอ็กชัน - index และอาเรย์ของพารามิเตอร์
จะเป็นดังนี้:
<?php
['var1' => 1, 'var2' => 2]
?>
เป้าหมายของบทเรียนนี้ คือ เขียนคลาส Router
ที่คืนค่าออบเจ็กต์ของคลาส Track
ส่วนอื่นๆ ยังไม่เกี่ยวข้องกับเราในตอนนี้ มาลงมือ
เขียนคลาสนี้กัน
งานปฏิบัติ
คัดลอกรหัสของคลาส Track ของฉัน
และวางไว้ในไฟล์
/core/Track.php