Правильное использование связки Symfony+Git+Composer+Docker?
==============================================================

 Cейчас в вакансиях работодатели ищут программистов с таким стеком: Symfony, Git, Composer, Docker. Я до этого программировал только на чистом Php. Но теперь хочу освоить современный стек. Каждую из этих технологий я уже начал изучать, по отдельности - более менее уже понимаю и использую (пока кроме Docker). Но как это используют в компаниях и зачем эти технологии там требуются в комплекте - пока никак не могу разобраться. Подскажите - как именно и в каком порядке обычно используются в проектах эти четыре технологии?  

Я представлял себе такие этапы:  

1. устанавливаю локально Symfony с помощью Composer  

2. веду разработку локально (а локально ли? есть ли другие варианты?)  

3. сделанные задачи заливаю в Github в тестовую ветку, где все поступающие правки проверяет тимлид и если все ок, то отправляет их в основную ветку (кстати, как оттуда изменения попадают на главный сервер с сайтом?)  

Но не могу понять - какое участие и как именно в этом принимают:  

1. Docker - вообще непонятна его роль тут  

2. Composer - он ведь по идее нужен мне только для установки Symfony, разве нет?  

Вобщем был бы благодарен за пример живого проекта и как там это все связано. 

 Докер выполняет ту роль, которую до этого у тебя играли всякие денверы, опенсерверы, и прочая вампа-юмба. Вместе с панельками на хостинге.   

Кроме симфони есть еще много других программ. Которые устанавливаются через композер. Надо уметь добавлять пакеты в проект, как самому, так и добавленные другими. Надо уметь разворачивать локально проект, который использует композер. Надо уметь читать composer.json. А по-хорошему ещё и писать. Но вообще по сути главное понимать разницу между install и update  

До того как "отправлять сделанные задачи" (только в git, а не github), сначала надо эту самую тестовую ветку завести локально. И уметь разруливать возникающие конфликты.   

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

  

Но главное что надо понять - это что нет никакой "связки". Все эти технологии используются в современной разработке, но не в какой-то "последовательности" а просто потому что это удобно. Ну вот ты ешь ложкой и вилкой. Не потому что есть какая-то определенная последовательность, а потому что некоторые блюда едят ложкой, а некоторые вилкой.   

  

Так что надо рассматривать все эти красивые слова не вместе, а по отдельности.  

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