Marsruutide töötamine oma MVC raamistikus
Te juba teate, et failis /project/config/routes.php
paiknevad marsruudid, mis näitavad vastavusi
URL-i ja kontrollerite ning toimingute vahel. Marsruudid
esindavad klassi Route objekte.
Teeme selle klassi faili
/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;
}
}
?>
Nagu näete, on selle klassi omadused mõeldud ainult lugemiseks, mis saavutatakse magic meetodite kasutamisega.
Heitke nüüd pilk failile marsruutidega. Te võite
näha, et seal asub massiiv, mis
tagastatakse läbi return.
See tähendab, et kui ühendada selline fail läbi require,
siis ühendamise tulemuse saab kirjutada
muutujasse ja selles muutujas on meie
massiiv:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// teie automaatlaadimise implementatsioon
});
// Loeme massiivi failist marsruutidega muutujasse:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopeerige minu klassi Route kood
ja asetage see faili
/core/Route.php.
Hankige massiiv marsruutidega failis index.php.