container9.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. require_once __DIR__.'/../includes/classes.php';
  3. use Symfony\Component\DependencyInjection\ContainerInterface;
  4. use Symfony\Component\DependencyInjection\ContainerBuilder;
  5. use Symfony\Component\DependencyInjection\Reference;
  6. use Symfony\Component\DependencyInjection\Parameter;
  7. $container = new ContainerBuilder();
  8. $container->
  9. register('foo', 'FooClass')->
  10. addTag('foo', array('foo' => 'foo'))->
  11. addTag('foo', array('bar' => 'bar'))->
  12. setFactoryMethod('getInstance')->
  13. setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, new Reference('service_container')))->
  14. setShared(false)->
  15. addMethodCall('setBar', array(new Reference('bar')))->
  16. addMethodCall('initialize')->
  17. setConfigurator('sc_configure')
  18. ;
  19. $container->
  20. register('bar', 'FooClass')->
  21. setArguments(array('foo', new Reference('foo.baz'), new Parameter('foo_bar')))->
  22. setShared(true)->
  23. setConfigurator(array(new Reference('foo.baz'), 'configure'))
  24. ;
  25. $container->
  26. register('foo.baz', '%baz_class%')->
  27. setFactoryMethod('getInstance')->
  28. setConfigurator(array('%baz_class%', 'configureStatic1'))
  29. ;
  30. $container->register('foo_bar', '%foo_class%');
  31. $container->getParameterBag()->clear();
  32. $container->getParameterBag()->add(array(
  33. 'baz_class' => 'BazClass',
  34. 'foo_class' => 'FooClass',
  35. 'foo' => 'bar',
  36. ));
  37. $container->setAlias('alias_for_foo', 'foo');
  38. $container->
  39. register('method_call1', 'FooClass')->
  40. setFile(realpath(__DIR__.'/../includes/foo.php'))->
  41. addMethodCall('setBar', array(new Reference('foo')))->
  42. addMethodCall('setBar', array(new Reference('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE)))->
  43. addMethodCall('setBar', array(new Reference('foo3', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))->
  44. addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
  45. ;
  46. $container->
  47. register('factory_service')->
  48. setFactoryService('foo.baz')->
  49. setFactoryMethod('getInstance')
  50. ;
  51. return $container;