Example #1
0
use App\Router, App\Session, App\Error;
/*
 * On initialise le Router avec les paramètres de l'URL passés par le .htaccess
 * On initialise les SESSIONS.
 */
Router::initialize($_GET);
Session::initialize();
/*
 * On assigne dans des variables :
 * - Le nom de classe du controlleur à instancier
 * - Le chemin de fichier PHP de la classe du controleur
 * - Le nom de la méthode à appeler
 * - Les eventuelles variables passées par URL
 */
$controllerName = Router::getControllerName();
$controllerFilePath = CONTROLLERS_DIR . Router::getControllerFilename();
$methodName = Router::getMethodName();
$args = Router::getArgs();
// On charge le controleur appellé ou celui par défaut
if (file_exists($controllerFilePath)) {
    include_once $controllerFilePath;
    $controllerInstance = new $controllerName();
    // On appelle beforeFilter();
    if (method_exists($controllerInstance, 'beforeFilter')) {
        $controllerInstance->beforeFilter();
    }
    // Si une méthode est définie
    if (method_exists($controllerInstance, $methodName)) {
        $controllerInstance->{$methodName}($args);
    } else {
        Error::throwError('Erreur 404!', 'Erreur 404! : La page demandée est inexistante ou n\'existe plus.');