Jak używać spl_autoload_register do wielu diet w PHP?
Staram się stworzyć własną strukturę MVC, jednak mam kłopoty z Autoloadem. Właściwie to nie problem, ale chciałbym zapytać guru, jak oni używająspl_autoload_register
funkcja, gdy istnieją różne katalogi.
Powiedzmy, że mamy następujące katalogi:
Controllers
Libs
Models
Każdy folder zawiera różne klasy, takie jak:
Controllers:
Main.php
File.php
About.php
Libs:
Main.php
Front_controller.php
Models:
Index.php
File.php
Login.php
Można zauważyć, że niektóre nazwy plików mogą znajdować się pod tą samą nazwą w różnych katalogach. Okay, więc to właśnie próbowałem do tej pory:
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 ;
}
});
Działa dobrze, ale jestem pewien, że istnieje inny sposób na uproszczenie wszystkiego. Czy ktoś może mi zasugerować, w jaki sposób mogę uczynić ten kod lepszym lub prostszym / co wykorzystują guru w tej sytuacji?