architectureПровереноPHP 8

Внедрение зависимостей без магии

Передавайте сервису необходимую зависимость, а не позволяйте ему искать глобальный контейнер.

new CheckoutService($orders, $payments, $clock)

Конструктор

Обязательные зависимости видны сразу и объект нельзя создать в недействительном состоянии.

Composition root

Конкретные реализации связываются в одном месте приложения. Доменный код не импортирует PDO-конфигурацию или HTTP-клиент.

Тест

Подставьте маленькую реализацию интерфейса в памяти и проверяйте сценарий без сети и базы.

Ошибка

Service Locator и статический singleton скрывают контракт и связывают тесты общим состоянием.

Связанные материалы

Источники и проверка

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie