Автор Тема: Проблем с PHP Mvc  (Прочетена 117 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Darnel

  • Full Member
  • ***
  • Благодарности
  • -Казани: 32
  • -Получени: 3
  • Публикации: 139
Проблем с PHP Mvc
« -: 02 Август 2019, 18:58:59 »
Здравейте. Опитвам се да пиша MVC но се натъкнах на един проблем и не знам как да го реша. Излиза ми тази грешка
Warning: require_once(C:/xampp/htdocs/models/Model.php): failed to open stream: No such file or directory in C:\xampp\htdocs\mvc\inc\config.php on line 10

Fatal error: require_once(): Failed opening required 'C:/xampp/htdocs/models/Model.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\mvc\inc\config.php on line 10

Ще предоставя конфиг файла и маршрутизатора
Код: PHP
  1. <?php
  2. //Config.php
  3. //DEFINE("ROOT", $_SERVER['DOCUMENT_ROOT']); Old
  4. DEFINE("ROOT", dirname(__DIR__)); //New
  5. DEFINE("CONTROLLER_PATH", ROOT . '/controllers/');
  6. DEFINE("MODEL_PATH", ROOT . '/models/');
  7. DEFINE("VIEWS_PATH", ROOT . '/views/');
  8.  
  9. require_once("inc/db.php");
  10. require_once("inc/route.php");
  11. require_once MODEL_PATH . 'Model.php';
  12. require_once VIEWS_PATH . 'View.php';
  13. require_once CONTROLLER_PATH . 'Controller.php';
  14.  
  15. Routing::buildRoute();
  16.  

Код: PHP
  1. <?php
  2.  
  3. class Routing {
  4.  
  5.         public static function buildRoute () {
  6.                 $controllerName = "IndexController";
  7.                 $modelName = "IndexModel";
  8.                 $action = "Index";
  9.  
  10.                 $route = explode("/", $_SERVER['REQUEST_URI']);
  11.  
  12.                 if($route[1] !='') {
  13.                         $controllerName = ucfirst($route[1] . "Controller");
  14.                         $modelName = ucfirst($route[1] . "Model");
  15.                 }
  16.  
  17.                 include CONTROLLER_PATH . $controllerName . ".php";
  18.                 include MODEL_NAME . $modelName . ".php";
  19.  
  20.                 if(isset($route[2]) && $route[2] !== ''){
  21.                         $action = $route[2];
  22.                        
  23.                 }
  24.                 $controller = new $controllerName();
  25.                 $controller->$action();
  26.  
  27.  
  28.         }
  29. }

Пробвах да задам и абсолютния път и пак ми дава същата грешка.
Някакви идеи ако имате да помагате ще съм благодарен :)

Едит: Оправих си грешките видях къде са и те са 2.
1.Първо не трябва да е $_SERVER['DOCUMENT_ROOT']); а dirname(__DIR__)
2.Във Route.php съм изпуснал ' . ' (точката при php);

Може да заключвате темата.
« Последна редакция: 23 Август 2019, 21:44:21 от Avalanche »