Для написания подобных вещей существует такая вещь как "плагины". У Composer при установке зависимости есть API, которым можно пользоваться и творить что пожелается.
А дальше дёргается API композера и творится всякое непотребство. Документации по нему нету, но методом тыка можно попытаться разобраться самостоятельно.
P.S. Все айпишники и хосты обратно прикрываем за ненадобностью. Артифактори вешаем внутрь локалки и даём ему доступ наружу. Композеру указываем артифактори в локальной сети и всегда стучимся наружу только сквозь него.
phar - тупо файл "all in one"
composer - установка через менеджер зависимостей (т.е. внедрение решения в проект)
Желательно второй вариант, т.к. мы получаем:
1) Возможность обновиться в любой момент одной командой
2) Резолв зависимостей, т.е. 99% гарантию отсутсвия конфликтов имён классов в проекте (такое может случиться, когда вендор в проекте использует тот же вендор, что и в библиотеке)
НО composer требует:
1) Наличие соединения с интернетом
2) Мы полагаемся на внешний репозиторий (packagist), в случае его повреждения или тьфу-тьфу взлома не дай бог в проект к вам прилетит вирусняга при очередном апдейте (такого не случалось пока и скорее всего не случится никогда, но всё зависит от политики безопасности проекта).