Kendi MVC Framework'ümüzde Route'larla Çalışma
Bildiğiniz gibi, /project/config/routes.php dosyasında
URL'ler ile controller'lar ve action'lar arasındaki eşleşmeleri
gösteren route'lar bulunur. Route'lar
Route sınıfının nesneleridir.
Hadi bu sınıfı /core/Route.php dosyasında
oluşturalım:
<?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;
}
}
?>
Gördüğünüz gibi, bu sınıfta özellikler sadece okunabilir amaçlıdır, bu da magic metotlar kullanılarak sağlanır.
Şimdi route dosyasına bir göz atın. Orada
return ile döndürülen bir dizi olduğunu
görebilirsiniz. Bu şu anlama gelir:
eğer böyle bir dosya require ile
eklenirse, eklemenin sonucu bir değişkene
yazılabilir ve bu değişkende dizimiz
yer alacaktır:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// otoload implementasyonunuz
});
// Route dosyasındaki diziyi okuyup değişkene atıyoruz:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Route sınıfımın kodunu kopyalayın
ve /core/Route.php dosyasına yerleştirin.
index.php dosyasında route'larla diziye erişin.