| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- use Symfony\Component\DependencyInjection\ContainerBuilder;
- use Symfony\Component\DependencyInjection\Definition;
- use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
- use Symfony\Component\DependencyInjection\Reference;
- $public = 'public' === $visibility;
- $container = new ContainerBuilder();
- // same visibility for deps
- $container->register('foo', FooCircular::class)->setPublic(true)
- ->addArgument(new Reference('bar'));
- $container->register('bar', BarCircular::class)->setPublic($public)
- ->addMethodCall('addFoobar', array(new Reference('foobar')));
- $container->register('foobar', FoobarCircular::class)->setPublic($public)
- ->addArgument(new Reference('foo'));
- // mixed visibility for deps
- $container->register('foo2', FooCircular::class)->setPublic(true)
- ->addArgument(new Reference('bar2'));
- $container->register('bar2', BarCircular::class)->setPublic(!$public)
- ->addMethodCall('addFoobar', array(new Reference('foobar2')));
- $container->register('foobar2', FoobarCircular::class)->setPublic($public)
- ->addArgument(new Reference('foo2'));
- // simple inline setter with internal reference
- $container->register('bar3', BarCircular::class)->setPublic(true)
- ->addMethodCall('addFoobar', array(new Reference('foobar3'), new Reference('foobar3')));
- $container->register('foobar3', FoobarCircular::class)->setPublic($public);
- // loop with non-shared dep
- $container->register('foo4', 'stdClass')->setPublic($public)
- ->setShared(false)
- ->setProperty('foobar', new Reference('foobar4'));
- $container->register('foobar4', 'stdClass')->setPublic(true)
- ->addArgument(new Reference('foo4'));
- // loop on the constructor of a setter-injected dep with property
- $container->register('foo5', 'stdClass')->setPublic(true)
- ->setProperty('bar', new Reference('bar5'));
- $container->register('bar5', 'stdClass')->setPublic($public)
- ->addArgument(new Reference('foo5'))
- ->setProperty('foo', new Reference('foo5'));
- return $container;
|