* Nils Adermann * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Packagist\WebBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * Adds VCS repository providers to the main repository_provider service * * @author Jordi Boggiano */ class RepositoryPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { if (!$container->hasDefinition('packagist.repository_provider')) { return; } $provider = $container->getDefinition('packagist.repository_provider'); $providers = array(); foreach ($container->findTaggedServiceIds('packagist.repository_provider') as $id => $tags) { $providers[$id] = isset($tags[0]['priority']) ? (int) $tags[0]['priority'] : 0; } arsort($providers); foreach ($providers as $id => $priority) { $provider->addMethodCall('addProvider', array(new Reference($id))); } } }