> Что такое гексагональная архитектура? (PHP)

Уровень: junior · Роль: backend · Язык: PHP · Категория: Технические вопросы

Компании: Travelata

Стек: PHP

> Пример ответа

Гексагональная архитектура (также известная как архитектура портов и адаптеров) - это шаблон проектирования, который изолирует бизнес-логику приложения от внешних зависимостей, таких как базы данных, веб-интерфейсы или внешние API. В PHP это особенно полезно для создания тестируемых и поддерживаемых приложений.

Суть подхода: ядро приложения (домен) взаимодействует с внешним миром через четко определенные интерфейсы (порты). Конкретные реализации этих интерфейсов (адаптеры) подключаются к ядру, но ядро ничего не знает о них. Например, порт может быть интерфейсом UserRepositoryInterface, а адаптером - MySQLUserRepository. Если нужно сменить БД с MySQL на PostgreSQL, вы просто пишете новый адаптер, не трогая бизнес-логику.

Пример на PHP:

PHP
// Порт (интерфейс)
interface UserRepositoryInterface {
public function findById(int $id): ?User;
}
// Адаптер (реализация для MySQL)
class MySQLUserRepository implements UserRepositoryInterface {
public function findById(int $id): ?User {
// SQL-запрос
}
}
// Ядро (бизнес-логика)
class UserService {
public function __construct(private UserRepositoryInterface $userRepo) {}
public function getUserName(int $id): string {
$user = $this->userRepo->findById($id);
return $user ? $user->getName() : 'Unknown';
}
}

Преимущества: независимость от фреймворков (например, Laravel или Symfony), легкость тестирования (можно подставить mock-адаптеры), гибкость замены инфраструктуры. Недостатки: больше кода из-за интерфейсов и адаптеров, но это окупается в сложных проектах.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью