3 require_once __DIR__.'/../includes/classes.php';
4 require_once __DIR__.'/../includes/foo.php';
6 use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
7 use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
8 use Symfony\Component\DependencyInjection\ContainerInterface;
9 use Symfony\Component\DependencyInjection\ContainerBuilder;
10 use Symfony\Component\DependencyInjection\Reference;
11 use Symfony\Component\DependencyInjection\Parameter;
12 use Symfony\Component\ExpressionLanguage\Expression;
14 $container = new ContainerBuilder();
16 ->register('foo', '\Bar\FooClass')
17 ->addTag('foo', array('foo' => 'foo'))
18 ->addTag('foo', array('bar' => 'bar', 'baz' => 'baz'))
19 ->setFactory(array('Bar\\FooClass', 'getInstance'))
20 ->setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))
21 ->setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz'), 'qux' => array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%')))
22 ->addMethodCall('setBar', array(new Reference('bar')))
23 ->addMethodCall('initialize')
24 ->setConfigurator('sc_configure')
28 ->register('foo.baz', '%baz_class%')
29 ->setFactory(array('%baz_class%', 'getInstance'))
30 ->setConfigurator(array('%baz_class%', 'configureStatic1'))
34 ->register('bar', 'Bar\FooClass')
35 ->setArguments(array('foo', new Reference('foo.baz'), new Parameter('foo_bar')))
36 ->setConfigurator(array(new Reference('foo.baz'), 'configure'))
40 ->register('foo_bar', '%foo_class%')
41 ->addArgument(new Reference('deprecated_service'))
45 $container->getParameterBag()->clear();
46 $container->getParameterBag()->add(array(
47 'baz_class' => 'BazClass',
48 'foo_class' => 'Bar\FooClass',
52 ->register('method_call1', 'Bar\FooClass')
53 ->setFile(realpath(__DIR__.'/../includes/foo.php'))
54 ->addMethodCall('setBar', array(new Reference('foo')))
55 ->addMethodCall('setBar', array(new Reference('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE)))
56 ->addMethodCall('setBar', array(new Reference('foo3', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
57 ->addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
58 ->addMethodCall('setBar', array(new Expression('service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default")')))
62 ->register('foo_with_inline', 'Foo')
63 ->addMethodCall('setBar', array(new Reference('inlined')))
67 ->register('inlined', 'Bar')
68 ->setProperty('pub', 'pub')
69 ->addMethodCall('setBaz', array(new Reference('baz')))
73 ->register('baz', 'Baz')
74 ->addMethodCall('setFoo', array(new Reference('foo_with_inline')))
78 ->register('request', 'Request')
83 ->register('configurator_service', 'ConfClass')
85 ->addMethodCall('setFoo', array(new Reference('baz')))
88 ->register('configured_service', 'stdClass')
89 ->setConfigurator(array(new Reference('configurator_service'), 'configureStdClass'))
93 ->register('configurator_service_simple', 'ConfClass')
98 ->register('configured_service_simple', 'stdClass')
99 ->setConfigurator(array(new Reference('configurator_service_simple'), 'configureStdClass'))
103 ->register('decorated', 'stdClass')
107 ->register('decorator_service', 'stdClass')
108 ->setDecoratedService('decorated')
112 ->register('decorator_service_with_name', 'stdClass')
113 ->setDecoratedService('decorated', 'decorated.pif-pouf')
117 ->register('deprecated_service', 'stdClass')
118 ->setDeprecated(true)
122 ->register('new_factory', 'FactoryClass')
123 ->setProperty('foo', 'bar')
127 ->register('factory_service', 'Bar')
128 ->setFactory(array(new Reference('foo.baz'), 'getInstance'))
132 ->register('new_factory_service', 'FooBarBaz')
133 ->setProperty('foo', 'bar')
134 ->setFactory(array(new Reference('new_factory'), 'getInstance'))
138 ->register('service_from_static_method', 'Bar\FooClass')
139 ->setFactory(array('Bar\FooClass', 'getInstance'))
143 ->register('factory_simple', 'SimpleFactoryClass')
145 ->setDeprecated(true)
149 ->register('factory_service_simple', 'Bar')
150 ->setFactory(array(new Reference('factory_simple'), 'getInstance'))
154 ->register('lazy_context', 'LazyContext')
155 ->setArguments(array(new IteratorArgument(array('k1' => new Reference('foo.baz'), 'k2' => new Reference('service_container'))), new IteratorArgument(array())))
159 ->register('lazy_context_ignore_invalid_ref', 'LazyContext')
160 ->setArguments(array(new IteratorArgument(array(new Reference('foo.baz'), new Reference('invalid', ContainerInterface::IGNORE_ON_INVALID_REFERENCE))), new IteratorArgument(array())))
164 ->register('tagged_iterator_foo', 'Bar')
169 ->register('tagged_iterator', 'Bar')
170 ->addArgument(new TaggedIteratorArgument('foo'))
173 $container->setAlias('alias_for_foo', 'foo')->setPublic(true);
174 $container->setAlias('alias_for_alias', 'alias_for_foo')->setPublic(true);