Расширение блока
Чтобы расширить блок, вы определите новый блок, как описано в следующем руководстве, за исключением того, что вы расширите класс Drupal\system\Plugin\Block\SystemBrandingBlock, вместо класса Друпал\Ядро\Блок\БлокБасе. Затем вы можете добавить свой пользовательский метод во вновь определенный блок.
https://www.valuebound.com/resources/blog/drupal-8-how-to-create-a-custom-block-programmatically
Альтернативное рассмотрение
Если то, что вам нужно от СистемаБрендингБлок это просто данные, и не обязательно фактический блок, я бы посоветовал вместо этого определить оказание услуг который предоставляет данные из вашего построить массив () метод.
Ответы на комментарии
Это правда, что это создаст новый тип блока, в дополнение к СистемаБрендингБлок. Блоки управляются, организуются и извлекаются Менеджер плагинов блоков. Вы можете написать декоратор для этой службы и переопределить получитьопределения() способ предотвращения исходного СистемаБрендингБлок быть доступным в качестве определения плагина, достигая эффекта замены оригинального СистемаБрендингБлок с вашим новым блоком.
Мне все еще кажется, что услуга - это то, что вам нужно. Изучив код в оригинале СистемаБрендингБлок определение класса, мы видим, что СистемаБрендингБлок опирается только на одну службу, config.factory. Таким образом, вашему сервису нужно только ввести config.factory службы, чтобы получить информацию, необходимую для построить массив () метод (который может быть лучше переименован как что-то вроде получить информацию о брендинге ()). Определение службы таким образом означает, что вам не нужно беспокоиться о реализации или развертывании блока (что в любом случае не похоже на то, что вам нужно) или необходимости писать декоратор службы.
Имейте также в виду, что SystemBrandingBlock — это не исходный источник данных, а скорее плагин для отображения этих данных в представленном формате. Блок совершенно не имеет значения, если вам нужны только данные.
Наконец, говоря в более широком смысле, Drupal организован в основном вокруг плагинов, сервисов и внедрения зависимостей, и знакомство с этими концепциями даст вам инструменты для систематического решения многих проблем в Drupal.