autoload при помощи composer


Composer это менеджер пакетов для PHP. Подробно о работе с ним можно почитать тут, тут или тут.

С помощью composer мы можем не только собрать проект из различных библиотек, но и просто создать autoloader для своих классов.

Нам понадобится установленный composer, посмотреть как установить можно тут. Мы можем описать правила по которым autoloader будет искать файлы классов. Рекомендуется использовать формат psr-0 так как этот формат обладает большей гибкостью.

Структура проекта следующая

project_structure

Создаем в корне тестового проекта файл composer.json и прописываем в нем требуемые для автоподключения классы:

в формате psr-0

в формате classmap

в формате files

includes/ во всех листингах - это директория в которой лежат файлы с нашими классами.

Переходим в корень нашего проекта выполняем команду composer install

composer_log

Теперь в корне проекта находится директория vendor с нашим autoloader. Ниже приведен код файлов, отвечающих за подключение наших классов в зависимости от формата по которому мы создавали composer.json.

в формате psr-0

в формате classmap. Поскольку в composer.json было прописано подключить всю директорию, без разбора, подключились также классы, которые мы не добавляли в composer.json в других форматах.

в формате files

Все что остается сделать, это подключить файл autoload.php, который находится в директории vendor, в нашем проекте

При добавлении новых классов, прописываем их в composer.json, выполняем команду composer dump-autoload и они попадают в наш автозагрузчик. Все!