Похоже, что он не зарезервирован/запрещен Drupal или Symfony — у меня это отлично работает в 9.3.13 после добавления кода и перестроения кеша (без дополнительных шагов):
custom_module.services.yml
Сервисы:
custom_module.event_subscriber:
класс: Drupal\custom_module\EventSubscriber\XYZFeeds
теги:
- {имя: event_subscriber}
src/EventSubscriber/XYZFeeds.php
<?php
пространство имен Drupal\custom_module\EventSubscriber;
используйте Drupal\Core\Config\ConfigCrudEvent;
используйте Drupal\Core\Config\ConfigEvents;
используйте Symfony\Component\EventDispatcher\EventSubscriberInterface;
класс XYZFeeds реализует EventSubscriberInterface {
общедоступная статическая функция getSubscribedEvents() {
возвращаться [
ConfigEvents::SAVE => 'configSave',
ConfigEvents::DELETE => 'configDelete',
];
}
общедоступная функция configSave (ConfigCrudEvent $event) {
$config = $event->getConfig();
\Drupal::messenger()->addStatus('Сохраненная конфигурация: ' . $config->getName());
}
общедоступная функция configDelete(ConfigCrudEvent $event) {
$config = $event->getConfig();
\Drupal::messenger()->addStatus('Удалена конфигурация: ' . $config->getName());
}
}
Это выдает ожидаемые сообщения о сохранении/удалении конфигурации, поэтому, вероятно, ваша проблема связана с чем-то более локализованным.
Одна из идей для дальнейшей отладки, которая приходит на ум, состоит в том, чтобы убедиться, что у вас нет пользовательского (или даже вспомогательного) кода, который изменяет службу, возможно, даже удаляет ее. Это можно сделать с помощью поставщик услуг, поэтому поиск соответствующих папок для Поставщик услуг
может быть первым шагом.
Также стоило бы попробовать изменить первую часть идентификатора, а не вторую, чтобы увидеть, действительно ли это так. event_subscriber
это вызывает проблему или строку в целом:
Сервисы:
my_module_test.event_subscriber:
класс: Drupal\my_module\EventSubscriber\XYZFeeds
теги:
- {имя: event_subscriber}
Если измененная версия работает с .event_subscriber
, по крайней мере, вы исключили это как проблему.