როუტებთან მუშაობა საკუთარ 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.