if (str_starts_with($id, '\\'
) && 1 <
substr_count($id, '\\'
)) { throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.',
$id,
substr($id, 1
)));
} throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.',
$id));
} throw new RuntimeException(sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.',
$id));
} // tag attribute values must be scalars
foreach ($definition->
getTags() as $name =>
$tags) { foreach ($tags as $attributes) { $this->
validateAttributes($id,
$name,
$attributes);
} } if ($definition->
isPublic() && !
$definition->
isPrivate()) { $resolvedId =
$container->
resolveEnvPlaceholders($id, null,
$usedEnvs);
if (null !==
$usedEnvs) { throw new EnvParameterException([$resolvedId], null, 'A service name ("%s") cannot contain dynamic values.'
);
} } }