Drupal API — набор программных инструментов предоставляемый Drupal для разработчиков.
Drupal состоит из двух основных внутренних подсистем Component и Core. Данные подсистемы предоставляет свои собственные API, а также взаимодействуют между собой, тем самым и образуя Drupal API.
Под Drupal API также часто подразумевают модули предоставляемые ядром и их API. Отчасти это верно, но это уже более высокоуровневое API. Именно подсистемы Component и Core предоставляют то самое ядро Drupal, поверх которого всё и работает.
Drupal API является неотъемлемой частью Drupal. Данный API не может быть отключён и им управляет DrupalKernel
.
¶Component
Component (компоненты) — набор API общего назначения. API компонентов предоставляет очень базовый и общий инструментарий, например, проксирование объектов или утилитарные API. Данный API находится в пространстве имён Drupal\Component
.
Компоненты могут зависеть от других компонентов или сторонних зависимостей (Composer). Важный момент в том, что API компонентов никак не взаимодействует с Drupal напрямую и формально, ничего о нём не знает. Это значит, если мы возьмём любой из данного API и воспользуемся им за пределами Drupal — он должен работать.
¶Core
Core (ядро) — набор API для ядра Drupal. Данный API предоставляет инструментарий для Drupal который необходим для его функционирования. Он создаёт «фундамент» для построения более комплексных и высокоуровневых API. Данный API находится в пространстве имён Drupal\Core
.
Core API не является отключаемым и работает всегда. Он может зависеть от компонентов, сторонних зависимостей или же других Core API инструментов, но не может от модулей, так как предоставляет функционал для них.
На текущем уровне уже доступен Dependency Injection и фактически он же предоставляет то самое «ядро Drupal» (DrupalKernel
).
Часть данного API является сервисами, а значит, их можно заменять на свои и влиять на поведение.