Lucrul cu rute în propriul framework MVC
Știți deja că în fișierul /project/config/routes.php
sunt plasate rutele care indică corespondențele
dintre URL și controlere cu acțiuni. Rutele
reprezintă obiecte ale clasei Route.
Să creăm această clasă în fișierul
/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;
}
}
?>
După cum vedeți, în această clasă proprietățile sunt destinate doar citirii, ceea ce se realizează prin utilizarea magiei.
Aruncați acum o privire în fișierul cu rute. Puteți
vedea că acolo se află un array care
este returnat prin return.
Aceasta înseamnă că dacă conectăm un astfel de fișier prin require,
atunci rezultatul conectării poate fi scris într-o
variabilă și în această variabilă va fi array-ul nostru:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// implementarea dvs. de autoload
});
// Citim array-ul din fișierul cu rute în variabilă:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Copiați codul clasei mele Route
și plasați-l în fișierul
/core/Route.php.
Obțineți array-ul cu rute în fișierul index.php.