alekseyHunter, кэширование может быть как угодно устроено. Например, извлечённый из Большой Базы объект кладётся в объект в памяти или какое-то быстрое локальное key-value хранилище, чтобы при дальнейших операциях с объектом получать его быстро.
ORM - это подход, при котором нужно обращаться не к базе напрямую, а к объектам, которые по мере необходимости подгружают/сохраняют данные. Очень рекомендую обратить внимание.
А так вообще я в php не очень, я на нём последний раз что-то более-менее сложное писал лет 8 назад, на обычных функциях и обычных запросах, хотя уже тогда настоящие программисты вовсю использовали ООП с фреймворками.
babylook, неправильная постановка вопроса. Нужно для каждого пользователя помнить, на каком порядковом вопросе он сейчас, и ответы на все предыдущие вопросы. Когда пользователь ответит на последний вопрос - обработать всё и выдать результат. Это в общих чертах, а дальше надо уже самому решать, куда бот будет складывать данные (если бот на вебхуках - то какая-нибудь база или redis, например; если постоянно запущенный скрипт - можно и в переменных хранить без сохранения) и решать все остальные вопросы.
Научить программировать с нуля на php с помощью вопросов на этом сайте всё равно не получится.
Но почему-то найти нормального админа по-прежнему сложно.
Вон, кандидаты на должность Linux-админа серверов даже на вопрос "как работает DNS?" часто не могут ответить. Типичный ответ: "DNS сервер обращается к DNS провайдера". Это же тихий ужас, а не квалификация. И что толку с того, что они выучили docker run и kubectl на курсах?
ganjo888, и ещё, /src/database/migrations:/src/database - тут каталоги внутри и снаружи не совпадают. А ещё я подозреваю, что имелось в виду не "/src/... на хосте", а "/src/... в том другом контейнере".
сергей кузьмин, если контейнер что-то делает в базе - то вполне нормально что он удаляется в конце. Но в данном случае похоже это даже не планировалось.
SexyHair, он при этом должен создать отдельную сеть с именем типа ИМЯПРОЕКТА_default (см. в docker network ls). Но если не переопределить DNS, будет использоваться тот же, что и у всей системы, но через собственный resolver в качестве прослойки.