Я вообще не понимаю, как держать vendors в репе. А что делать с собственными зависимостями (вот написали либу и используем тут и там)? Копипастить везде, и когда баг поправили обновлять везде ручками?
не понимаю, чем обновление внутренней либы отличается от обновления чужой - это артефакт, если версия меняется, и надо обновлять - надо проверить совместимость со всеми продуктами,
интеграционные тесты и регрессии, которые вылезают - проблема на несколько порядков более трудоемкая, чем просто обновление любым способом
А с фронтендом что? Держать собранные css и js тоже в репе?
Получается, что главный аргумент - у вас фронт в одной репе с php, его все-равно надо компилить, и раз уж не повезло, то другие варианты вы считаете злом.
В любом случае в любом вменяемом проекте так или иначе будет система сборки, без этого же вообще невозможно. Чем там вообще мешает composer install?
Нету у нас сборки в php. Ее вообще никогда не бывает. Есть копирование неизменяемых артефактов в папку. Это ты на ноде много пишешь.
Есть деплой, есть тесты, а сборка бывает только архива для передачи на деплой, но это вообще другая тема.
Я при старте контейнера вызываю проверку vendors и установку, если папка пустая. Но непонятно зачем.
С разработкой вообще никаких проблем быть не должно: если все не через задницу, разработчик запустил docker-compose up и все само сделалось.
Так будет в обоих случаях.
Ну или я понимаю, что у кого-то там исторически сложилось - монорепы на 100 терабайт и прочий идиотизм, но то, что кто-то усложнил себе жизнь и страдает, не повод страдать так же
Никак не вижу страдания от наличия в репе кода, который все-равно есть в папке и при разработке, и на сервере. Разница в одной записи в .gitignore и в скорости разворачивания. Composer install дольше.