Example #1
0
 public function run()
 {
     // Получить строку запроса
     $uri = $this->getUri();
     if ($uri == '') {
         include_once ROOT . '/controllers/IndexController.php';
         $controllerObject = new IndexController();
         $controllerObject->render();
     } else {
         // Проверить наличие такого запроса в routes.php
         foreach ($this->routes as $uriPattern => $path) {
             // Сравниваем $uriPattern и $uri
             if (preg_match("~{$uriPattern}~", $uri)) {
                 // Получаем внутренний путь из внешнего согласно правилу
                 $internalRoute = preg_replace("~{$uriPattern}~", $path, $uri);
                 // Определить контроллер, action, параметры
                 $segments = explode('/', $internalRoute);
                 $controllerName = array_shift($segments) . 'Controller';
                 $controllerName = ucfirst($controllerName);
                 $actionName = array_shift($segments);
                 $parameters = array_shift($segments);
                 // Подключить файл класса-контроллера
                 $controllerFile = ROOT . '/controllers/' . $controllerName . '.php';
                 if (file_exists($controllerFile)) {
                     include_once $controllerFile;
                 }
                 //Создать объект, вызвать метод (action)
                 $controllerObject = new $controllerName();
                 $controllerObject->{$actionName}($parameters);
                 //$result = call_user_func_array(array($controllerObject, $actionName), $parameters);
                 //$controllerObject->$actionName($parameters);
                 break;
                 // if ($result != null) {
                 // 	break;
                 // }
             }
         }
     }
     // if (!isset($controllerObject)){
     // 	$controllerName = "Controller404";
     // 	$actionName = "action_404";
     // 	$controllerFile = ROOT.'/controllers/'.$controllerName.'.php';
     // 	if (file_exists($controllerFile)) {
     // 		include_once($controllerFile);
     // 	}
     // 	$controllerObject = new $controllerName;
     // 	$result = $controllerObject->$actionName();
     // }
 }
Example #2
0
<?php

session_start();
switch ($_GET['view']) {
    case 'add_room':
        include_once 'app/controller/rooms_controller.php';
        $view = new RoomsController();
        $view->addRoom($_POST['name'], $_POST['public']);
        break;
    case 'individual_room':
        include_once 'app/controller/rooms_controller.php';
        $view = new RoomsController();
        $view->individualRoom($_GET['roomId']);
        break;
    default:
        include_once 'app/controller/index_controller.php';
        $view = new IndexController();
        $view->render();
}