Перейти к основному содержимому

Структура экосистемы

  • Plugin
    • Module
      • Subscriber
      • Service
    • Package
      • Module
        • Subscriber
        • Service
    • Service Package
      • Service

Plugin

Главная точка входа плагина для WordPress.
Отсюда запускается всё: инициализируются модули, пакеты и сервисные пакеты.
Плагин управляет контейнером зависимостей, жизненным циклом и регистрацией всего остального кода.

Subscriber

Подписчик на WP-хуки. Содержит функцию, который вызывается WordPress при наступлении события. Инициализируется внутри своего модуля.

Service

Служебный класс, выполняющий конкретную задачу — например, работу с API, валидацию, конвертацию данных, загрузку файлов и т.д.
Используется внутри модуля

💡 Пример: MediaUploader, JsonSerializer, OrderRepository.

Module

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

💡 Пример модулей: Orders, Checkout, Payments, Users.

Каждый модуль изолирован и может подключаться или отключаться независимо от других (по задумке. Ну хотя бы для группировки).

Package

Composer-пакет, расширяющий функциональность плагина. Содержит модули, сервисы и может выполнять действия при активации/деактивации плагина.
Подключается вручную в плагине, чтобы контролировать его поведение, потому что пакеты могут автоматически регистрировать свои хуки.

💡 Пример пакетов:
frontend, log-viewer, db-orm, custom-updater.

Service Package

Лёгкий Composer-пакет, который предоставляет только сервисы, без модулей и подписчиков.
Используется как инфраструктурный слой: добавляет обёртки, адаптеры и утилиты.
Подключается автоматически плагином и не влияет напрямую на поведение.

💡 Пример сервисных пакетов:
wp-assets, wp-options, wp-users — типизированные обёртки над функциями WordPress.


Кратко

СущностьНазначениеПодключение
PluginТочка входа, управляет остальными уровнямиВручную
PackageФункциональный блок, может содержать хуки и lifecycleВручную
ModuleДоменная часть пакетаЧерез пакет/плагин
SubscriberРеакция на WP-хукиЧерез модуль
ServiceВспомогательный класс/утилитаЧерез DI
Service PackageНизкоуровневый пакет с сервисамиАвтоматически и DI