PHP боевой сервер и локальный, как решить проблему?

Добрый день! Я видимо, что - то упускаю, но у меня проблема с тем, что файлы на боевом сервере не открываются. Написал я первый велосипед с использованием MVC PHP. Роутер определяет файл с классом контроллера и модели, определяет путь к ним. Но потом идет ошибка, мол файла не существует. Я приложу код роутере, ибо я наверняка допустил ошибку, хотя и не могу понять где. Поскольку на локальном сервере работает. Спасибо!

<?php

class Route
{

 protected function is_administrator ()
 {

 }

  static function start ()
  {
  //default controller & action
  $controllerName = "home";
  $actionName = "index";

  //explode URI string
  $route = explode( "/", $_SERVER['REQUEST_URI'] );

  //check URI string #1, controller
    if( !empty( $route[1] ) ):
      $controllerName = $route[1];
    endif;

  //check URI string #2, action
    if( !empty( $route[2] ) ):
      $actionName = $route[2];
    endif;


  //prefix's
  $modelName = "Model_$controllerName";
  $controllerName = "Controller_$controllerName";
  $actionName = "action_$actionName";

  //load model files
  $modelFile = strtolower( $modelName ) . ".php";
  $modelPath = "application/models/$modelFile";
    if( file_exists( $modelPath ) ):
        require_once ("$modelPath");
    endif;

  //load controller files
  $controllerFile = strtolower( $controllerName ) . ".php";
  $controllerPath = "application/controllers/$controllerFile";
   
    try
    {
        if( !file_exists( $controllerPath ) ):
        throw new Exception ( Route::ErrorPage() );
        else:
        require_once ("$controllerPath");
        endif;
    }
    catch( Exception $e )
    {
        $e->getMessage();
    }
    
    print $controllerPath;

    //create controller and action
    $controller = new $controllerName;
    $action = $actionName;

    try
    {
        if( !method_exists( $controller, $action ) ):
            throw new Exception( Route::ErrorPage() );
        else:
            $controller->$action();
        endif;
    }
    catch( Exception $p )
    {
        $p->getMassage();
    }

  //print $modelName . "/" . $controllerName . "/" . $actionName;

  }

  static function ErrorPage ()
  {
    header("Location: /oops/index ");
  }

}
 ?>


www.profocus-studio.com
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
Несколько советов:
1. Юзайте CamelCase - ControllerHome , а не Controller_Home .... а еще лучше HomeController )
2. Юзайте spl_autoload(); , а не require '*.class';
3. Юзайте is_callable(); вместо method_exists();
Ответ написан
trevoga_su
@trevoga_su
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы