예제 #1
0
 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))));
     }
 }
예제 #2
0
 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');