Как использовать spl_autoload_register для нескольких каталогов в PHP?
Я на самом деле пытаюсь создать MVC фреймворк для себя, однако яУ меня проблемы с автозагрузкой. Это'на самом деле это не проблема, но яЯ хотел бы спросить гуру, как они используютspl_autoload_register
функция, когда есть разные каталоги.
Допустим, у нас есть следующие каталоги:
Controllers
Libs
Models
Каждая папка содержит разные классы, такие как:
Controllers:
Main.php
File.php
About.php
Libs:
Main.php
Front_controller.php
Models:
Index.php
File.php
Login.php
Вы можете заметить, что некоторые имена файлов могут быть найдены с одинаковыми именами в разных каталогах. Итак, это то, что ямы уже пробовали:
spl_autoload_register(function ($class) {
$pathContorllers = 'Controllers/' . $class . '.php';
$pathLibs = 'Libs/' . $class . '.php';
$pathModels = 'Models/' . $class . '.php';
if (file_exists($pathContorllers)) {
require_once $pathContorllers;
} elseif (file_exists($pathLibs)) {
require_once $pathLibs;
} elseif (file_exists($pathModels )) {
require_once $pathModels ;
}
});
Это работает хорошо, однако яЯ уверен, что есть еще один способ сделать все проще. Кто-нибудь может подсказать мне, как я могу сделать этот код лучше или проще / что гуру используют в этой ситуации?