โมดูลสามารถแทนที่ค่าในวัตถุการกำหนดค่า ตามที่อธิบายไว้ใน ระบบการแทนที่การกำหนดค่า / ให้การแทนที่จากโมดูลโมดูลจำเป็นต้องใช้บริการที่ติดแท็ก config.factory.override. คลาสที่ใช้สำหรับบริการจำเป็นต้องดำเนินการ ConfigFactoryOverrideInterface
ดังตัวอย่างที่ระบุในเอกสารประกอบ
บริการ:
config_example.overrider:
คลาส: Drupal\config_example\Config\ConfigExampleOverrides
แท็ก:
- {ชื่อ: config.factory.override ลำดับความสำคัญ: 5}
เนมสเปซ Drupal\config_example\Config;
ใช้ Drupal\Core\Cache\CacheableMetadata;
ใช้ Drupal\Core\Config\ConfigFactoryOverrideInterface;
ใช้ Drupal\Core\Config\StorageInterface;
/**
* ตัวอย่างการแทนที่การกำหนดค่า
*/
ConfigExampleOverrides คลาสใช้ ConfigFactoryOverrideInterface {
/**
* {@inheritdoc}
*/
loadOverrides ฟังก์ชั่นสาธารณะ (ชื่อ $) {
$แทนที่ = [];
ถ้า (in_array ('system.site', $names)) {
$overrides['system.site'] = ['name' => 'ชื่อไซต์ถูกลบ!'];
}
กลับ $overrides;
}
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะ getCacheSuffix () {
กลับ 'ConfigExampleOverrider';
}
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะ getCacheableMetadata (ชื่อ $) {
ส่งคืน CacheableMetadata ใหม่ ();
}
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ createConfigObject ($name, $collection = StorageInterface::DEFAULT_COLLECTION) {
ส่งคืน NULL;
}
}
โปรดทราบว่าค่าใน การตั้งค่า.php ไฟล์จะแทนที่ค่าโมดูลเสมอ สำหรับโมดูลในการตั้งค่าคอนฟิกูเรชัน การตั้งค่า.php ไฟล์ไม่จำเป็นต้องตั้งค่า