Работа со рути во свој MVC фрејмворк
Веќе знаете дека во датотеката /project/config/routes.php
се поставуваат рути кои укажуваат на кореспонденции
помеѓу 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;
}
}
?>
Како што гледате, во оваа класа својствата се наменети само за читање, што се постигнува со употреба на магија.
Погледнете сега во датотеката со рути. Можете
да видите дека таму се наоѓа низа која
се враќа преку return. Ова значи
дека ако се вклучи таква датотека преку require,
тогаш резултатот од вклучувањето може да се запише во
променлива и во оваа променлива ќе се најде нашата
низа:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// вашата имплементација на автоматско вчитување
});
// Ја читаме низата од датотеката со рути во променлива:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Ископирајте го кодот на мојата класа Route
и поставете ја во датотеката
/core/Route.php.
Добијте ја низата со рути во датотеката index.php.