TGViewer
Beer::Code🍺 Beer::Code🍺 @beerphp · 3.64K subscribers
Post #22 2.18K
Слои (часть 2), Application and Domain

Слой Application, как видно из предыдущего поста, содержит классы command (DTO) и command handlers (например use case's или сервисы, в зависимости от подхода).

Data Transfer Object (DTO) — должен содержать только значения примитивных типов и не должен содержать поведения.

Зачем нужен 'use case' или 'command handler'?

Он точно знает как нужно обработать определенную команду. Внутри себя именно он ответственный за всю оркестрацию: здесь, в конструкторе происходит подключение всех необходимых объектов доменной области (это могут быть сущности, value objects, репозитории, генераторы данных и т.д.).

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

Возьмём пример уже из существующего поста и дополним его. Как видите в новом примере в конструкторе мы подключили все необходимые зависимости, в execute передали контекст (DTO), а внутри метода содержится бизнесовая логика, прямо как в требованиях задачи: проверяем email на уникальность, генерируем токен, сохраняем в базу, шлем его на почту.

В отличие от предыдущего, этот слой отлично поддаётся Unit тестированию.

Что же относится к Domain?

• Entities
• Value objects
• Domain events
• Repository interfaces
• Domain services
• Factories
• ...

Код из этого слоя не должен никак соприкасаться с "реальным миром".

#PHP #middle #layers #source
  • 🔥 1
More from @beerphp
  1. Sep 22, 2026Anthropic випустила Opus 5.5 За словами Anthropic, на більшості задач вона працює на рівні…
  2. Sep 21, 2026Доречі, цього тижня буду проводити НОВИЙ воркшоп Harness Engineering - 24 і 26 вересня. Од…
  3. Sep 21, 2026Хочу поділитись своєю мотивацією На тому тижні був воркшоп Agentic Engineering Workflow Ко…
  4. Sep 20, 2026Post #198
  5. Sep 14, 2026Не можу не поділитись, вчора отримав такий відгук Це прям паливо заради якого хочеться про…
  6. Sep 13, 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 →