has(RunnerManager::class)) { return; } $definition = $container->findDefinition(RunnerManager::class); // find all service IDs with the app.mail_transport tag $taggedServices = $container->findTaggedServiceIds(self::WIN32SERVICE_RUNNER_TAG); foreach ($taggedServices as $id => $tags) { $serviceDefinition = $container->findDefinition($id); $class = $serviceDefinition->getClass(); $alias = null; if (method_exists($class, 'getAlias')) { $alias = $class::getAlias(); } // a service could have the same tag twice foreach ($tags as $attributes) { $definition->addMethodCall('addRunner', [ new Reference($id), $alias ?? $attributes['alias'], ]); } } } }