private function loadQueues(ContainerBuilder $container, $config) { foreach ($config as $queueId => $queueConfig) { $type = $queueConfig['type']; if ($type == 'pheanstalk') { $pheanstalkId = array_key_exists('pheanstalk_id', $queueConfig) ? $queueConfig['pheanstalk_id'] : 'default'; if (!array_key_exists('tube', $queueConfig)) { throw new \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException('Queue configuration "' . $queueId . '" does not have tube.'); } $definition = new \Symfony\Component\DependencyInjection\Definition(); $definition->setClass($container->getParameter('eventio_bbq.defaults.queue.pheanstalk.class')); $definition->setArguments(array($queueId, $container->getDefinition(sprintf('eventio_bbq.pheanstalk.%s', $pheanstalkId)), $queueConfig['tube'])); } elseif ($type == 'predis') { $pheanstalkId = array_key_exists('predis_id', $queueConfig) ? $queueConfig['predis_id'] : 'default'; if (!array_key_exists('key', $queueConfig)) { throw new \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException('Queue configuration "' . $queueId . '" does not have a key.'); } if (!array_key_exists('config', $queueConfig) || !is_array($queueConfig['config'])) { $queueConfig['config'] = array(); } $definition = new \Symfony\Component\DependencyInjection\Definition(); $definition->setClass($container->getParameter('eventio_bbq.defaults.queue.predis.class')); $definition->setArguments(array($queueId, $container->getDefinition(sprintf('eventio_bbq.predis.%s', $pheanstalkId)), $queueConfig['key'], $queueConfig['config'])); } elseif ($type == 'directory') { $definition = new \Symfony\Component\DependencyInjection\Definition(); $definition->setClass($container->getParameter('eventio_bbq.defaults.queue.directory.class')); $definition->setArguments(array($queueId, $queueConfig['directory'])); } else { throw new \Exception('Invalid queue type ' . $type); } $container->setDefinition(sprintf('eventio_bbq.%s', $queueId), $definition); $container->getDefinition('eventio_bbq')->addMethodCall('registerQueue', array($container->getDefinition(sprintf('eventio_bbq.%s', $queueId)))); } }
public function process(\Symfony\Component\DependencyInjection\ContainerBuilder $container) { //Backward compatibility with Fos User 1.3 if (class_exists('FOS\\UserBundle\\FOSUserEvents')) { $fosUserListenerFlash = new \Symfony\Component\DependencyInjection\Definition(); $fosUserListenerFlash->setClass('Tecnocreaciones\\Bundle\\AjaxFOSUserBundle\\EventListener\\FlashListener')->addArgument($container->getDefinition('session'))->addArgument($container->getAlias('translator'))->setTags(array('kernel.event_subscriber')); } }
<?php use Symfony\Component\DependencyInjection\Reference; if (!$container->hasParameter('api.endpoint') || !$container->hasParameter('api.key')) { throw new \Exception('Required parameter not found'); } $apiMakesDef = new \Symfony\Component\DependencyInjection\Definition(); $apiMakesDef->setClass('DG\\SymfonyCert\\Service\\EdmundsApi\\MakesService')->addArgument('%api.endpoint%')->addArgument('%api.key%')->addArgument(new Reference('delegating_serializer'))->addMethodCall('setLogger', [new Reference('array_logger')])->addMethodCall('setStatService', [new Reference('service.stat.calls')]); $container->setDefinition('api.makes', $apiMakesDef); $container->register('delegating_serializer', 'DG\\SymfonyCert\\Service\\Serializer\\DelegatingSerializer'); $container->register('array_logger', 'DG\\SymfonyCert\\Service\\Logger\\ArrayLogger');