$source = \
func_num_args() > 4 ?
func_get_arg(4
) : null;
$autoconfigureAttributes =
new RegisterAutoconfigureAttributesPass();
$autoconfigureAttributes =
$autoconfigureAttributes->
accept($prototype) ?
$autoconfigureAttributes : null;
$classes =
$this->
findClasses($namespace,
$resource,
(array) $exclude,
$autoconfigureAttributes,
$source);
// prepare for deep cloning
$serializedPrototype =
serialize($prototype);
foreach ($classes as $class =>
$errorMessage) { if (null ===
$errorMessage &&
$autoconfigureAttributes) { $r =
$this->container->
getReflectionClass($class);
if ($r->
getAttributes(Exclude::
class)[0
] ?? null
) { $this->
addContainerExcludedTag($class,
$source);
continue;
} if ($this->env
) { $attribute = null;
foreach ($r->
getAttributes(When::
class, \ReflectionAttribute::IS_INSTANCEOF
) as $attribute) { if ($this->env ===
$attribute->
newInstance()->env
) { $attribute = null;
break;
} } if (null !==
$attribute) {