Продолжаю изучать язык программирования PHP и писать свой учебный проект.

Почти неделю промучился с новой темой. Прочитал несколько статей про паттерны проектирования в программировании. Понял сразу 2 момента.
1. Тема ни разу не простая, для понимания паттернов мне пока просто нехватает уровня знаний. А значит более глубоко буду изучать эту тему позже.
2. Паттерны проектирования это не какой-то новый язык или конструкция. Это некий довольно условный шаблон, который описывает взаимодействие внутри программы.

При этом подходить к выбору паттерна необходимо с умом исходя из задачи стоящей перед проектом.

Короче снова понятно, что ничего не поняно…

Как сделать с умом подобный выбор когда находишься на стадии изучения языка.

Вот я и решил, что на данном этапе будду пытаться использовать MVC Модель-Представление-Контрллер.

Насколько я понял это единстенный паттерн который мне доступен для понимания на данном этапе обучения. И у него много примеров в повседневной жизни. Например в кафе.

Представление это меню.
Контрллер это официант.
Кухня это Модель.

Я с помощью Представления (меню) выбираю стейк средней прожарки, и бокал красного вина.
Контрллер (официант) сообщает мой заказ модели (повару) его на кухню.
Модель (повар) говорит официанту стейки кончились, есть лазанья.
Контроллер (официант) возвращается ко мне и говорит нет стейков, компания из 12 голодных дровосеков в другом конце зала всё слопали зато вина 12 видом и есть лазанья.
Я недобрым взглядом смотрю на дровосеков и заказываю пиво с рулькой.
Контроллер (официант) идёт на кухню и сообщает мой новый заказ.
Модель (повар) говорит, 40 минут придётся подождать, но сделает так что пальчики оближешь.
Контрллер (официант) снова ко мне и говорит рулька будет через 40 минут, а пока готовится могу предложить пивной набор их сделали с запасом, но дровосеки на водочку перешли)
Я соглашаюсь.
Контрллер снова к Модели, мне готовят рульку и несут пиво и пивной набор.
Получается я не взаимодействую с поваром никак, я делаю заказ через Представление (меню), контроллер (официант) сам всё узнаёт и в случае проблемм указывает мне на новые картинки в меню. Или если всё в порядке даёт задание модели (повару) и я получаю свой заказ.
Всё просто для меня, официант бегает, повар готовит, я ем. все при деле ))

Возможно я не доконца осознал суть этой концепции, но мне показалось, что это работает именно так.
А значит дальше мне нужно постараться разбить код на 3 логические чати.
View — то что видит пользователь и с чем взаимодействет
Controller — Часть кода которая принимает запросы, на основании которых даёт задание в Model. Получает результат и показывает пользователю через View.
Model — Работает с базой данных, делает всю сложную работу.

На сегодня всё. Продолжение следует…