Вложенные зависимости Git (aws-sdk) не добавлены в репозиторий

Я добавил через Composer php aws-sdk в свое приложение. Он также загрузил — как зависимости от aws-sdk — два модуля: Guzzle и диспетчер событий Symfony.

Когда я зафиксировал и отправил свои изменения в репозиторий, единственным добавленным модулем был aws-sdk, а остальные 2 модуля — «неотслеживаемые файлы».

Как добавить модули в репозиторий?

Если я сейчас нажму на aws, модули не добавятся, я прав? Другой разработчик синхронизировал мои изменения, и в его локальной версии приложение не работает - из-за двух обязательных модулей...

Спасибо.


person peppeocchi    schedule 07.01.2015    source источник
comment
Вы контролируете версию своей папки vendor/? Как правило, вы игнорируете это и фиксируете только файлы composer.json и composer.lock. Затем другие разработчики могут composer install устанавливать библиотеки и их зависимости.   -  person Chris    schedule 07.01.2015
comment
Ссылки: getcomposer.org/ doc/faqs/ getcomposer. орг/док/   -  person Chris    schedule 07.01.2015
comment
Да я понимаю почему не копируются в репо. Я нажимаю на эластичный beanstalk с git aws.push, что, я думаю, вытягивает из eb текущую ветку. Если в текущей ветке нет этих папок: - как я могу запустить установку композитора? - приложение не будет работать, пока я не запущу установку композитора? . Как я могу отправить приложение в eb без поломки приложения, пока я не запущу установку композитора? Есть какой-то обходной путь? Спасибо!   -  person peppeocchi    schedule 07.01.2015
comment
Эластичный Beanstalk поддерживает Composer из коробки. Я не могу найти хороший ресурс о том, как это работает, но я думаю, что если вы поместите свои файлы composer.json и composer.lock в корень вашего репозитория, EB автоматически установит ваши зависимости. См. также stackoverflow.com/questions/17521843/   -  person Chris    schedule 07.01.2015
comment
Хорошо, я только что попробовал, но похоже, что вложенные модули не установлены (aws-sdk есть, но не его зависимости - жрут и диспетчер событий). В моем composer.json мне требуется только aws-sdk — в composer.json aws-sdk требуются указанные выше зависимости. Нужно ли мне добавлять в мой composer.json guzzle и event-dispatcher? Или мне просто нужно удалить папку поставщика из моего репозитория и позволить eb установить ее? Спасибо еще раз.   -  person peppeocchi    schedule 08.01.2015
comment
Отлично, только что удалил папку поставщика из моего репозитория, добавил в gitignore, отправил в eb, и теперь все работает! Спасибо за вашу помощь!   -  person peppeocchi    schedule 08.01.2015
comment
Рад, что это сработало! Я добавил это как правильный ответ.   -  person Chris    schedule 08.01.2015


Ответы (1)


Composer рекомендует версионировать файлы composer.json и composer.lock но не ваш vendor/ каталог< /a>, который сам Composer создает и управляет с помощью команд composer install и composer update.

Elastic Beanstalk создает для вас ваше приложение, включая установку его зависимостей при развертывании. Это относится и к большинству конкурентов.

С декабря 2012 г. EB имеет поддерживает Composer из коробки. К сожалению, не так много документации о том, как это работает, но другие поставщики PaaS обычно читают файлы зависимостей из корня вашего репозитория.

OP подтвердил в комментариях выше, что наличие файлов composer.json и composer.lock в корне репозитория и удаление каталога vendor/ из системы контроля версий привели к правильной сборке приложения на EB.

person Chris    schedule 08.01.2015