services9.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  3. use Bar\FooClass;
  4. use Symfony\Component\DependencyInjection\Parameter;
  5. require_once __DIR__.'/../includes/classes.php';
  6. require_once __DIR__.'/../includes/foo.php';
  7. return function (ContainerConfigurator $c) {
  8. $p = $c->parameters();
  9. $p->set('baz_class', 'BazClass');
  10. $p->set('foo_class', FooClass::class)
  11. ->set('foo', 'bar');
  12. $s = $c->services();
  13. $s->set('foo')
  14. ->args(array('foo', ref('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, ref('service_container')))
  15. ->class(FooClass::class)
  16. ->tag('foo', array('foo' => 'foo'))
  17. ->tag('foo', array('bar' => 'bar', 'baz' => 'baz'))
  18. ->factory(array(FooClass::class, 'getInstance'))
  19. ->property('foo', 'bar')
  20. ->property('moo', ref('foo.baz'))
  21. ->property('qux', array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'))
  22. ->call('setBar', array(ref('bar')))
  23. ->call('initialize')
  24. ->configurator('sc_configure');
  25. $s->set('foo.baz', '%baz_class%')
  26. ->factory(array('%baz_class%', 'getInstance'))
  27. ->configurator(array('%baz_class%', 'configureStatic1'));
  28. $s->set('bar', FooClass::class)
  29. ->args(array('foo', ref('foo.baz'), new Parameter('foo_bar')))
  30. ->configurator(array(ref('foo.baz'), 'configure'));
  31. $s->set('foo_bar', '%foo_class%')
  32. ->args(array(ref('deprecated_service')))
  33. ->share(false);
  34. $s->set('method_call1', 'Bar\FooClass')
  35. ->file(realpath(__DIR__.'/../includes/foo.php'))
  36. ->call('setBar', array(ref('foo')))
  37. ->call('setBar', array(ref('foo2')->nullOnInvalid()))
  38. ->call('setBar', array(ref('foo3')->ignoreOnInvalid()))
  39. ->call('setBar', array(ref('foobaz')->ignoreOnInvalid()))
  40. ->call('setBar', array(expr('service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default")')));
  41. $s->set('foo_with_inline', 'Foo')
  42. ->call('setBar', array(ref('inlined')));
  43. $s->set('inlined', 'Bar')
  44. ->property('pub', 'pub')
  45. ->call('setBaz', array(ref('baz')))
  46. ->private();
  47. $s->set('baz', 'Baz')
  48. ->call('setFoo', array(ref('foo_with_inline')));
  49. $s->set('request', 'Request')
  50. ->synthetic();
  51. $s->set('configurator_service', 'ConfClass')
  52. ->private()
  53. ->call('setFoo', array(ref('baz')));
  54. $s->set('configured_service', 'stdClass')
  55. ->configurator(array(ref('configurator_service'), 'configureStdClass'));
  56. $s->set('configurator_service_simple', 'ConfClass')
  57. ->args(array('bar'))
  58. ->private();
  59. $s->set('configured_service_simple', 'stdClass')
  60. ->configurator(array(ref('configurator_service_simple'), 'configureStdClass'));
  61. $s->set('decorated', 'stdClass');
  62. $s->set('decorator_service', 'stdClass')
  63. ->decorate('decorated');
  64. $s->set('decorator_service_with_name', 'stdClass')
  65. ->decorate('decorated', 'decorated.pif-pouf');
  66. $s->set('deprecated_service', 'stdClass')
  67. ->deprecate();
  68. $s->set('new_factory', 'FactoryClass')
  69. ->property('foo', 'bar')
  70. ->private();
  71. $s->set('factory_service', 'Bar')
  72. ->factory(array(ref('foo.baz'), 'getInstance'));
  73. $s->set('new_factory_service', 'FooBarBaz')
  74. ->property('foo', 'bar')
  75. ->factory(array(ref('new_factory'), 'getInstance'));
  76. $s->set('service_from_static_method', 'Bar\FooClass')
  77. ->factory(array('Bar\FooClass', 'getInstance'));
  78. $s->set('factory_simple', 'SimpleFactoryClass')
  79. ->deprecate()
  80. ->args(array('foo'))
  81. ->private();
  82. $s->set('factory_service_simple', 'Bar')
  83. ->factory(array(ref('factory_simple'), 'getInstance'));
  84. $s->set('lazy_context', 'LazyContext')
  85. ->args(array(iterator(array('k1' => ref('foo.baz'), 'k2' => ref('service_container'))), iterator(array())));
  86. $s->set('lazy_context_ignore_invalid_ref', 'LazyContext')
  87. ->args(array(iterator(array(ref('foo.baz'), ref('invalid')->ignoreOnInvalid())), iterator(array())));
  88. $s->set('tagged_iterator_foo', 'Bar')
  89. ->private()
  90. ->tag('foo');
  91. $s->set('tagged_iterator', 'Bar')
  92. ->public()
  93. ->args(array(tagged('foo')));
  94. $s->alias('alias_for_foo', 'foo')->private()->public();
  95. $s->alias('alias_for_alias', ref('alias_for_foo'));
  96. };