2016-01-13 16 views
0

Так структура моего проекта заключается в следующем:spl_autoload_register терпит неудачу, когда нагрузка классы

- Project 
    - php 
     - classes 
      - Config.php 
      - DB.php 
     - core 
      - init.php 
     - index.php 

В моем ядра/init.php файла, я использую spl_autoload_register() загрузить различные классы:

spl_autoload_register(function ($class) { 
    require_once 'classes/' .$class. '.php'; 
}); 

И по причинам испытаний, в index.php, я требую мой init.php Файловые d попробуйте метод моего класса DB:

require_once 'php/core/init.php'; 
$_db = DB::getInstance(); 

Но я просто ничего не получаю. Я уверен, что проблема в PHP, потому что, когда у меня есть только html в index.php, все работает.

Где проблема? Я предполагаю, что это от spl_autoload_register(), который, как-то не работает.

ответ

3

Изменить автозагрузчик к этому:

spl_autoload_register(function ($class) { 
    require_once __DIR__ . '/../classes/' .$class. '.php'; 
}); 

Итак, вы уверены, что она включает в себя файл из правильного места.

+0

Работает отлично. Для тех, кто хочет знать: я использовал контейнер для докеров, который по некоторым причинам перепутал путь. Большое спасибо! – Mornor

Смежные вопросы