Öz MVC freymvorkymyzda routlar bilen işlemek
Siz eýýäm bilýäňiz, /project/config/routes.php faýlynda
URL bilen kontrollerler we hereketler arasyndaky gabat-geligi görkezýän
routlar ýerleşdirilýär. Routlar
Route klasynyň obyektleri hökmünde görkezilýär.
Geliň bu klassy
/core/Route.php faýlynda düzeliň:
<?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;
}
}
?>
Görşüňiz ýaly, bu klassyň aýratynlyklary diňe okamak üçin niýetlenendir, bu bolsa magiýany ulanmak bilen ýerine ýetirilýär.
Indi routlar bilen faýla serediň. Siz
görüp bilersiňiz, ol ýerde return arkaly
yzygiderliligi gaýtarylan massiw bar. Bu şuny aňladýar,
eger şeýle faýly require arkaly birikdirsek,
onda birikdirmäniň netijesini üýtgeýjide ýazyp bileris we
bu üýtgeýjide biziň massiwimiz ýerleşer:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// siziň awtomaýik ýüklemek realizasiýaňyz
});
// Faýldan routlar bilen massiwy okap, üýtgeýjige alýarys:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Route klasymyň kodyny göçürip,
onu /core/Route.php faýlyna ýerleşdiriň.
index.php faýlynda routlar bilen massiwy alyň.