Что такое Layered Architecture (многослойная архитектура)?

Ответ

Разделение приложения на горизонтальные слои с четкими обязанностями: Presentation (контроллеры, ввод/вывод), Application/Service (бизнес-логика, оркестрация), Domain (сущности, правила), Infrastructure (БД, внешние API). Зависимости сверху вниз; нижний слой не знает о верхнем. Прост в понимании, хорошо подходит для CRUD-приложений.

// Controller -> Service -> Repository
class UserController { public function __construct(private UserService $svc) {} }
class UserService { public function __construct(private UserRepository $repo) {} }
class UserRepository { public function __construct(private PDO $db) {} }

Отличие от Clean/Hexagonal: layered допускает прямую зависимость от конкретных классов, а не только от интерфейсов. Подходит для старта; при росте сложности переходят к Clean/Hexagonal.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.