TGViewer
Beer::Code🍺 Beer::Code🍺 @beerphp · 3.64K subscribers
Post #21 2.06K
Слои (Layers), Infrastructure

После предыдущего поста поступило несколько просьб пройтись по теме слоёв (Layers), чтобы у всех было понимание о чём идёт речь.

Об этом достаточно подробно написано в книгах ""Чистая архитектура"" Р.Мартина и DDD Эванса. Здесь мы будем рассматривать 3 базовых слоя — Infrastructure, Application и Domain.
Их можно выделить и больше, но этих достаточно, чтобы понять принцип.

Зачем они нужны?
Основными идеями выступают независимость вашего кода (от фреймворка, базы данных, внешних сервисов, UI и т.д.) и тестируемость.

Окей, звучит неплохо, что дальше?
Еще одно очень важное правило — "Правило зависимостей":
Ничто из внутреннего слоя не может знать что-либо о внешнем слое, ничто из внутреннего слоя не может указывать на внешний слой.

Пока сложно, но давайте перейдем к коду.

Слой Infrastucture cодержит в себе всё, что связывает ваше приложение с внешним миром, например: Получение HTTP запроса и отправка ответа, отправка запросов к другим серверам, отправка сообщений в очереди и т.д. Фреймворки обеспечивают нам все внешние взаимодействие из коробки, а нам остаётся правильно писать код в тех местах, в которых мы соприкасаемся с фреймворком — в большинстве случаев это контроллеры или консольные команды.

Экшен нашего контроллера может принимать request, делать валидацию для пользователя (про валидацию можно сделать отдельный пост) средствами фреймворка (или руками), создать DTO (команду) и запустить бизнес процесс (вызвать useCase / handler). Затем получит результат обработки данных и отправить пользователю информацию. В простом варианте контроллер выглядит так.

$this->createUserHandler->excecute($command) - как раз обращается уже к слою Application, который мы рассмотрим в следующем посте.

#PHP #layers #middle #source
  • 🔥 1
More from @beerphp
  1. Sep 27, 2026Сувора QA Конференція: AI в тестуванні Друзі, буду спікером на онлайн конфі, котра стартує…
  2. Sep 22, 2026Anthropic випустила Opus 5.5 За словами Anthropic, на більшості задач вона працює на рівні…
  3. Sep 21, 2026Доречі, цього тижня буду проводити НОВИЙ воркшоп Harness Engineering - 24 і 26 вересня. Од…
  4. Sep 21, 2026Хочу поділитись своєю мотивацією На тому тижні був воркшоп Agentic Engineering Workflow Ко…
  5. Sep 20, 2026Post #198
  6. Sep 14, 2026Не можу не поділитись, вчора отримав такий відгук Це прям паливо заради якого хочеться про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →