Pembangunan Penghala dalam Kerangka MVC Sendiri
Sekarang anda perlu membangunkan penghala. Ia merupakan kelas yang akan mengambil array laluan, mengambil URL yang diminta, dan menentukan laluan mana yang sepadan dengan URL tersebut. Selepas menemui laluan yang sepadan, kelas kami harus mendapatkan bahagian URL, yang sepadan dengan parameter laluan.
Biarkan hasilnya, penghala kami mengembalikan
objek kelas Track, yang mengandungi nama
pengawal yang harus dipanggil untuk
permintaan ini, nama tindakan dan parameter dari URL.
Biarkan kelas Track kami mempunyai sifat
controller, action dan params,
hanya boleh diakses untuk dibaca:
<?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;
}
}
?>
Contoh
Sebagai contoh, katakan dalam bar alamat dimasukkan
/test/1/2/. Katakan kami mempunyai laluan,
yang sepadan dengan alamat ini:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Ini bermakna nama pengawal akan menjadi test,
nama tindakan - index, dan array parameter
akan seperti berikut:
<?php
['var1' => 1, 'var2' => 2]
?>
Matlamat pelajaran ini - menulis kelas Router,
yang mengembalikan objek kelas Track.
Selebihnya tidak menyentuh kami buat masa ini. Mari kita mulakan
menulis kelas ini.
Tugas Praktikal
Salin kod kelas Track saya
dan letakkannya dalam fail
/core/Track.php.