diff --git a/src/Drupal/ServiceMap.php b/src/Drupal/ServiceMap.php index 6809e424..c6368d60 100644 --- a/src/Drupal/ServiceMap.php +++ b/src/Drupal/ServiceMap.php @@ -59,6 +59,9 @@ public function setDrupalServices(array $drupalServices): void foreach ($decorators as $decorated_service_id => $services) { foreach ($services as $dcorating_service_id) { + if (!isset(self::$services[$decorated_service_id])) { + continue; + } self::$services[$decorated_service_id]->addDecorator(self::$services[$dcorating_service_id]); } } diff --git a/tests/src/ServiceMapFactoryTest.php b/tests/src/ServiceMapFactoryTest.php index 3770a705..5834bb9e 100644 --- a/tests/src/ServiceMapFactoryTest.php +++ b/tests/src/ServiceMapFactoryTest.php @@ -108,6 +108,10 @@ public function testFactory(string $id, callable $validator): void 'decorates' => 'service_map.deocrating_base', 'class' => 'Drupal\service_map\Override', ], + 'decorating_an_unknown_service' => [ + 'decorates' => 'unknown', + 'class' => 'Drupal\service_map\Override', + ], ]); $validator($service->getService($id)); }