По какому принципу работает autoload в composer?
Composer работает по нескольким стандартам - PSR-0 и PSR-4 которые работают по соглашению именования классов и расположения файлов в которых они объявлены - то есть в нем реализована "Ленивая" загрузка классов - класс грузится только когда впервые используется (https://secure.php.net/manual/ru/language.oop5.aut...
Смотри также:
- https://www.php-fig.org/psr/psr-0/
- https://www.php-fig.org/psr/psr-4/
Так же для совместимости есть способ classmap когда явно задается карта "класс" => "файл":
- https://getcomposer.org/doc/04-schema.md#autoload
В принципе все более-менее понятно.
Происходит подключение класса, например use Class.
Если класс не найден, то вызываются зарегистрированные spl_методы.
Метод ищет ключ Class ищет в карте_классов.json (забыл как называется), со структурой "class_path : file_path".
Если находится, то происходит подключение класса (require, include, когда как. Отчего зависит я так и не понял).
Если нет, то ищет в основных папках, массив путей которых тоже хранится где-то в каком-то виде (тут я не уверен, так ли в композере, но в другом автолоадере видел такое).
Если никогда ничего не найдено, то вернёт ошибку.
Вроде так, если кто знает больше - поправьте меня, исправлю ответ.