findDefinition(Avatar::class); $orderedProviders = []; $providers = []; foreach ($container->findTaggedServiceIds($this->tagName) as $id => $tags) { $definition = $container->findDefinition($id); if (!$definition->isAutoconfigured() || $definition->isAbstract()) { continue; } foreach ($tags as $attributes) { $identifier = $attributes['identifier']; $providers[$identifier] = [ 'before' => GeneralUtility::trimExplode(',', $attributes['before'] ?? '', true), 'after' => GeneralUtility::trimExplode(',', $attributes['after'] ?? '', true), 'serviceName' => $id, ]; } } foreach ((new DependencyOrderingService())->orderByDependencies($providers) as ['serviceName' => $serviceName]) { $orderedProviders[] = new Reference($serviceName); } $avatarDefinition->setArgument('$avatarProviders', $orderedProviders); } }