private function YamlFileLoader::parseDefinitions in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader::parseDefinitions()
- 9 core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader::parseDefinitions()
Parses definitions
Parameters
array $content:
string $file:
File
- core/
lib/ Drupal/ Core/ DependencyInjection/ YamlFileLoader.php, line 110
Class
- YamlFileLoader
- YamlFileLoader loads YAML files service definitions.
Namespace
Drupal\Core\DependencyInjectionCode
private function parseDefinitions($content, $file) {
if (!isset($content['services'])) {
return;
}
if (!is_array($content['services'])) {
throw new InvalidArgumentException(sprintf('The "services" key should contain an array in %s. Check your YAML syntax.', $file));
}
// Some extensions split up their dependencies into multiple files.
if (isset($content['_provider'])) {
$provider = $content['_provider'];
}
else {
$basename = basename($file);
[
$provider,
] = explode('.', $basename, 2);
}
$defaults = $this
->parseDefaults($content, $file);
$defaults['tags'][] = [
'name' => '_provider',
'provider' => $provider,
];
foreach ($content['services'] as $id => $service) {
$this
->parseDefinition($id, $service, $file, $defaults);
}
}