การทำงานกับเส้นทางใน MVC Framework ของตัวเอง
คุณทราบแล้วว่าในไฟล์ /project/config/routes.php
มีการกำหนดเส้นทาง (routes) ซึ่งระบุความสอดคล้อง
ระหว่าง URL และคอนโทรลเลอร์พร้อมกับแอคชัน เส้นทาง
เหล่านั้นเป็นออบเจ็กต์ของคลาส Route
มาสร้างคลาสนี้ในไฟล์
/core/Route.php กัน:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
ดังที่คุณเห็น ในคลาสนี้คุณสมบัติต่างๆ มีไว้ สำหรับการอ่านอย่างเดียว ซึ่งทำได้โดยการใช้ เมธอดมหัศจรรย์ (magic methods)
ลองดูไฟล์ที่เก็บเส้นทางตอนนี้ คุณสามารถ
เห็นได้ว่ามีอาร์เรย์อยู่ที่นั่น ซึ่ง
ถูกส่งคืนผ่าน return นี่หมายความว่า
หากรวมไฟล์ดังกล่าวผ่าน require
ผลลัพธ์ของการรวมสามารถบันทึกลงใน
ตัวแปรได้ และในตัวแปรนั้นจะมีอาร์เรย์ของเรา
อยู่:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// การimplement autoload ของคุณ
});
// อ่านอาร์เรย์จากไฟล์เส้นทางลงในตัวแปร:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
คัดลอกโค้ดคลาส Route ของฉัน
และวางไว้ในไฟล์
/core/Route.php
รับอาร์เรย์ที่มีเส้นทางในไฟล์ index.php