Как использовать 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 ;
    }
});

Это работает хорошо, но я уверен, что есть еще один способ сделать все проще. Кто-нибудь может подсказать мне, как я могу сделать этот код лучше или проще / что гуру используют в этой ситуации?

Ответы на вопрос(2)

Ваш ответ на вопрос