alexanev6
@alexanev6
UX / UI дизайнер

Почему не получается подгрузить классы с помощью spl_autoload_register()?

Пытаюсь освоить автоподгрузку классов, размещенных в отдельных файлах. Насколько я понимаю, метод __autoload устарел, поэтому использовать надо spl_autoload_register(). Но почему-то файлы не подгружаются. В корневой директории есть директория lib в которой 2 файла: air_class.php и car_class.php, в которых прописаны классы. Посмотрите пожалуйста, может я что-то не так делаю:
Код index.php
set_include_path(get_include_path().PATH_SEPARATOR. 'lib');
spl_autoload_extensions('.php');
spl_autoload_register();


$car = new Car();
$aircraft = new Air();


Код одного из классов (они почти одинаковые)

trait CanMove {
	public function move() {
		echo 'Движение автомобиля';
	}
}

class Car {
	use CanMove;
}
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
TommyV888
@TommyV888 Куратор тега PHP
-
Вам нужно переименовать файлы класса, чтобы они назвались также как и сами классы: Car и Air. Либо в spl_autoload_register передать функцию, которая загрузит нужный файл:
spl_autoload_register(function($class){
    include strtolower($class) . '_class.php';
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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