Чистая архитектура на Yii2
Enterprise-решение на PHP 8.4 и Yii 2: Clean Architecture, DDD, CQRS, HTMX, 100% Code Coverage и 100% Infection MSI.
Ключевые особенности
Clean Architecture
Полное разделение бизнес-логики и фреймворка: изоляция через Use Cases и порты.
CQRS & CQS
Разделение команд на запись и запросов на чтение для максимальной производительности.
Domain Events
Асинхронное взаимодействие через события и очереди: паттерн Fan-Out для рассылок.
Idempotency
Защита от повторных запросов на уровне Middleware: безопасность операций.
Гибридный поиск
Полнотекстовый поиск с автоматическим откатом к LIKE для надежности.
HTMX UI
Бесконечный скролл и реактивный интерфейс без единой строчки кастомного JS.
Слой за слоем
Осознанные компромиссы
Integer ID > UUID
UUID увеличивают размер индексов. Мы выбрали производительность и читаемость простых ID.
No Outbox
Transactional Outbox - это сложно. Мы используем afterCommit, жертвуя 0.01% надежности ради простоты.
ActiveRecord
AR - не антипаттерн, если он заперт в инфраструктуре. Используем его мощь, не загрязняя домен.
Grouped Handlers
Вместо 10 мелких классов - один сплоченный обработчик. High Cohesion важнее слепого SRP.
Native Web UI
ActiveForm и виджеты Yii2 в представлении. Это экономит время, при этом не протекая в бизнес-логику.
Smart Validation
Простые проверки - в форме, бизнес-правила - в домене. Избегаем дублирования и "взрыва" классов.
Технологический стек
Бескомпромиссное качество
Мы не просто пишем тесты - мы проверяем их качество с помощью Mutation Testing (Infection). Если мутант выживает - мы меняем тест или код. Это гарантирует, что каждый ассерт имеет значение.
- Unit Tests: тестирование домена в полной изоляции.
- Integration Tests: проверка работы с реальными БД и очередями.
- E2E Tests: симуляция действий пользователя в браузере.