private const ALLOWED_TYPES =
['array', 'bool', 'float', 'int', 'string', \BackedEnum::
class];
/**
* @return void
*/
public function process(ContainerBuilder
$container) { $bag =
$container->
getParameterBag();
$types =
[];
$processors =
[];
foreach ($container->
findTaggedServiceIds('container.env_var_processor'
) as $id =>
$tags) { if (!
$r =
$container->
getReflectionClass($class =
$container->
getDefinition($id)->
getClass())) { throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.',
$class,
$id));
} elseif (!
$r->
isSubclassOf(EnvVarProcessorInterface::
class)) { throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".',
$id, EnvVarProcessorInterface::
class));
} foreach ($class::
getProvidedTypes() as $prefix =>
$type) { $processors[$prefix] =
new Reference($id);
$types[$prefix] = self::
validateProvidedTypes($type,
$class);
} } if ($bag instanceof EnvPlaceholderParameterBag
) {