Задача Composer - найти и установить зависимости для конкретного проекта. Все, что он может сделать, можно сделать вручную, в основном, просто разместив файлы в нужном месте и ссылаясь на ряд автозагрузчиков.
Чтобы построить Composer с нуля, вам нужен определенный код, который находится за пределами основного репозитория Composer, например, помощники командной строки и ведения журналов. Вы можете загрузить все это вручную, но естественным способом является использование существующей установки Composer для их извлечения.
Это необходимо только в том случае, если вы работаете с самим Composer, поскольку после успешной сборки вы можете создать файл PHAR, который содержит весь необходимый код, включая сторонние зависимости. Это файлы, распространяемые как официальные релизы, и все, что нужно большинству людей; инструмент даже имеет команду self-update
, которая загружает новый файл PHAR и перезаписывает тот, который вы запустили.
Этот вид начальной загрузки - использование существующей сборки инструмента как части собственного процесса сборки - на самом деле довольно распространен. Есть некоторые части самого PHP, которые генерируются с использованием PHP-скрипта, и я считаю, что первый полнофункциональный компилятор C ++ был написан на C ++.