Kendi MVC Framework'ümüzde Router Uygulaması
Şimdi, çağrılarımıza uygun olarak Router
sınıfının taslağını yazalım:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// burada kod olacak
}
}
?>
getTrack metodunda, hangi rotanın verilen
$uri'ye karşılık geldiğini belirlemeliyiz.
Bunun için rotalar dizimizi bir döngü ile
tarayacağız:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// $uri ve $route kontrolü
}
}
}
?>
Eğer bir rota URI ile eşleşiyorsa, bu URI'den
rota parametrelerinin değerlerini almalı ve
Track sınıfının bir nesnesini döndürmeliyiz:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (rota ve URI eşleşme kontrolü) {
$params = ; // uri'den parametreler alınmalı
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // eğer hiçbir rota uymazsa
}
}
?>
Router sınıfımın taslağını kopyalayın
ve /core/Router.php dosyasına yerleştirin.
Router sınıfını, sonuç olarak
Track sınıfının bir nesnesini döndürecek
şekilde uygulayın. Eğer zorluk yaşarsanız
(ki oldukça muhtemeldir), MVC kullanımını
öğrendiğiniz framework'ün kaynak koduna bakın.
Orada Router sınıfında, uygulamanın
eksik kısmını ve benim ona yönelik yorumlarımı
bulacaksınız.