Я на самом деле пытаюсь создать структуру MVC для себя, однако у меня возникают проблемы с Autoload. Это не проблема на самом деле, но я хотел бы спросить гуру, как они используют функцию 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 ;
}
});
Он работает хорошо, однако я уверен, что есть еще один способ сделать все проще. Может ли кто-нибудь предложить мне, как я могу сделать этот код лучше или проще/что гуру используют в этой ситуации?