ดูเหมือนจะไม่สงวน/ไม่อนุญาตโดย 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('Saved config: ' . $config->getName());
}
ฟังก์ชั่นสาธารณะ configDelete (ConfigCrudEvent $event) {
$config = $event->getConfig();
\Drupal::messenger()->addStatus('Deleted config: ' . $config->getName());
}
}
สิ่งนี้สร้างข้อความที่คาดหวังในการบันทึก/ลบการกำหนดค่า ดังนั้นดูเหมือนว่าปัญหาของคุณน่าจะเป็นปัญหาที่แปลเป็นภาษาท้องถิ่นมากกว่า
แนวคิดหนึ่งสำหรับการดีบักเพิ่มเติมที่นึกถึงคือการตรวจสอบว่าคุณไม่มีรหัสที่กำหนดเอง (หรือแม้แต่ส่วนร่วม) ซึ่งกำลังเปลี่ยนแปลงบริการ หรือแม้กระทั่งลบออก สามารถทำได้โดยใช้ ผู้ให้บริการดังนั้น grep-ing โฟลเดอร์ที่เกี่ยวข้องสำหรับ ผู้ให้บริการ
อาจเป็นก้าวแรก
นอกจากนี้ยังควรทดสอบเพื่อเปลี่ยนส่วนแรกของ ID แทนที่จะเป็นส่วนที่สอง เพื่อดูว่าจริงหรือไม่ event_subscriber
ที่เป็นสาเหตุของปัญหาหรือสตริงทั้งหมด:
บริการ:
my_module_test.event_subscriber:
คลาส: Drupal\my_module\EventSubscriber\XYZFeeds
แท็ก:
- { ชื่อ: event_subscriber }
หากเวอร์ชันที่แก้ไขใช้งานได้กับ .event_subscriber
อย่างน้อยคุณก็ได้ตัดปัญหานั้นออกไปแล้ว