GearmanExtension.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Gearman Bundle for Symfony2
  4. *
  5. * @author Marc Morera <yuhu@mmoreram.com>
  6. * @since 2013
  7. */
  8. namespace Mmoreram\GearmanBundle\DependencyInjection;
  9. use Symfony\Component\Config\FileLocator;
  10. use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
  11. use Symfony\Component\DependencyInjection\ContainerBuilder;
  12. use Symfony\Component\HttpKernel\DependencyInjection\Extension;
  13. /**
  14. * This is the class that loads and manages your bundle configuration
  15. */
  16. class GearmanExtension extends Extension
  17. {
  18. /**
  19. * Loads a specific configuration.
  20. *
  21. * @param array $config An array of configuration values
  22. * @param ContainerBuilder $container A ContainerBuilder instance
  23. *
  24. * @throws \InvalidArgumentException When provided tag is not defined in this extension
  25. *
  26. * @api
  27. */
  28. public function load(array $config, ContainerBuilder $container)
  29. {
  30. $configuration = new Configuration();
  31. $config = $this->processConfiguration($configuration, $config);
  32. $container->setParameter('gearman.bundles', $config['bundles']);
  33. $container->setParameter('gearman.servers', $config['servers']);
  34. $container->setParameter('gearman.default.settings', $config['defaults']);
  35. $container->setParameter('gearman.default.settings.generate_unique_key', $config['defaults']['generate_unique_key']);
  36. $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
  37. $loader->load('parameters.yml');
  38. $loader->load('services.yml');
  39. }
  40. }