Darbība ar maršrutiem savā MVC ietvarā

Jūs jau zināt, ka failā /project/config/routes.php tiek ievietoti maršruti, kas norāda atbilstības starp URL un kontrolieriem ar darbībām. Maršruti ir Route klases objekti. Izveidosim šo klasi failā /core/Route.php:

/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;
    }
  }
?>

Kā jūs varat redzēt, šajā klasē īpašības ir paredzētas tikai lasīšanai, ko panāk, izmantojot magiskās metodes.

Ielūkojieties tagad failā ar maršrutiem. Jūs varat redzēt, ka tur atrodas masīvs, kas tiek atgriezts ar return. Tas nozīmē, ka, ja pievienot šādu failu ar require, tad pievienošanas rezultātu var ierakstīt mainīgajā, un šajā mainīgajā būs mūsu masīvs:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // jūsu automātiskās ielādes implementācija
  });
  
  // Nolasām masīvu no faila ar maršrutiem mainīgajā:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Nokopējiet mana klases Route kodu un ievietojiet to failā /core/Route.php.

Задание 2

Iegūstiet masīvu ar maršrutiem failā index.php.