Структура экосистемы
- Plugin
- Module
- Subscriber
- Service
- Package
- Module
- Subscriber
- Service
- Module
- Service Package
- Service
- Module
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 |