<?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'); }