Beispiel #1
0
 protected function processExtensions(array $config, Container $container, $alias)
 {
     $extensions = !empty($config["extensions"]) ? $config["extensions"] : [];
     foreach ($extensions as $service => $extension) {
         if (!$container->offsetExists($service)) {
             $aliasedService = $this->referenceResolver->aliasThisKey($service, $alias);
             if (!$container->offsetExists($aliasedService)) {
                 throw new ConfigException(sprintf("Cannot use extension for the service '%s' as it does not exist", $service));
             }
             $service = $aliasedService;
         }
         foreach ($extension as $i => $call) {
             $extension[$i] = $this->processCall($call, $i, $service . " (extension)");
         }
         if (!empty($extension)) {
             $container->extend($service, function ($object) use($extension, $alias) {
                 return $this->serviceFactory->extendService($object, $extension, $alias);
             });
         }
     }
 }