consolidate all repos to one for archive
This commit is contained in:
39
semester_4/razvoj_aplikacij_za_internet/php/admin/routes.php
Normal file
39
semester_4/razvoj_aplikacij_za_internet/php/admin/routes.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
Usmerjevalnik (router) skrbi za obravnavo HTTP zahtev. Glede na zahtevo,
|
||||
pokliče ustrezno akcijo v zahtevanem controllerju.
|
||||
*/
|
||||
|
||||
// Funkcija, ki kliče kontrolerje in hkrati vključuje njihovo kodo in kodo modela
|
||||
function call($controller, $action)
|
||||
{
|
||||
// Vključimo kodo controllerja in modela (pazimo na poimenovanje datotek)
|
||||
require_once('controllers/' . $controller . '_controller.php');
|
||||
require_once('models/' . $controller . '.php');
|
||||
|
||||
// Ustvarimo kontroler
|
||||
$o = $controller . "_controller"; //generiramo ime razreda controllerja
|
||||
$controller = new $o; //ustvarimo instanco razreda (ime razreda je string spremenljivka)
|
||||
|
||||
//pokličemo akcijo na kontrolerju (ime funkcije je string spremenljivka)
|
||||
$controller->{$action}();
|
||||
}
|
||||
|
||||
// Seznam vseh dovoljenih controllerjev in njihovih akcij. Z njegovo pomočjo bi
|
||||
// lahko definirali tudi pravice (ustrezno zmanjšali nabor akcij pod določenimi pogoji)
|
||||
$controllers = array(
|
||||
'pages' => ['error', 'api', 'login', 'register', 'logout'],
|
||||
'ads' => ['index', 'show', 'create', 'store', 'edit', 'update', 'delete', 'addImg']
|
||||
);
|
||||
|
||||
// Preverimo, če zahteva kliče controller in akcijo iz zgornjega seznama
|
||||
if (
|
||||
array_key_exists($controller, $controllers)
|
||||
&& in_array($action, $controllers[$controller])
|
||||
) {
|
||||
// Pokličemo akcijo
|
||||
call($controller, $action);
|
||||
} else {
|
||||
// Izpišemo stran z napako
|
||||
call('pages', 'error');
|
||||
}
|
Reference in New Issue
Block a user