container9.php 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. setFactoryClass('FooClass')->
  13. setFactoryMethod('getInstance')->
  14. setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))->
  15. setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz')))->
  16. addMethodCall('setBar', array(new Reference('bar')))->
  17. addMethodCall('initialize')->
  18. setConfigurator('sc_configure')
  19. ;
  20. $container->
  21. register('bar', 'FooClass')->
  22. setArguments(array('foo', new Reference('foo.baz'), new Parameter('foo_bar')))->
  23. setScope('container')->
  24. setConfigurator(array(new Reference('foo.baz'), 'configure'))
  25. ;
  26. $container->
  27. register('foo.baz', '%baz_class%')->
  28. setFactoryClass('%baz_class%')->
  29. setFactoryMethod('getInstance')->
  30. setConfigurator(array('%baz_class%', 'configureStatic1'))
  31. ;
  32. $container->
  33. register('foo_bar', '%foo_class%')->
  34. setScope('prototype')
  35. ;
  36. $container->getParameterBag()->clear();
  37. $container->getParameterBag()->add(array(
  38. 'baz_class' => 'BazClass',
  39. 'foo_class' => 'FooClass',
  40. 'foo' => 'bar',
  41. ));
  42. $container->setAlias('alias_for_foo', 'foo');
  43. $container->
  44. register('method_call1', 'FooClass')->
  45. setFile(realpath(__DIR__.'/../includes/foo.php'))->
  46. addMethodCall('setBar', array(new Reference('foo')))->
  47. addMethodCall('setBar', array(new Reference('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE)))->
  48. addMethodCall('setBar', array(new Reference('foo3', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))->
  49. addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
  50. ;
  51. $container->
  52. register('factory_service', 'Bar')->
  53. setFactoryService('foo.baz')->
  54. setFactoryMethod('getInstance')
  55. ;
  56. $container
  57. ->register('foo_with_inline', 'Foo')
  58. ->addMethodCall('setBar', array(new Reference('inlined')))
  59. ;
  60. $container
  61. ->register('inlined', 'Bar')
  62. ->setProperty('pub', 'pub')
  63. ->addMethodCall('setBaz', array(new Reference('baz')))
  64. ->setPublic(false)
  65. ;
  66. $container
  67. ->register('baz', 'Baz')
  68. ->addMethodCall('setFoo', array(new Reference('foo_with_inline')))
  69. ;
  70. return $container;