<?php 
 
require_once __DIR__.'/../includes/classes.php'; 
 
use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\DependencyInjection\Reference; 
use Symfony\Component\ExpressionLanguage\Expression; 
 
$container = new ContainerBuilder(); 
$container-> 
    register('foo', 'Bar\FooClass')-> 
    addTag('foo', array('foo' => 'foo'))-> 
    addTag('foo', array('bar' => 'bar'))-> 
    setFactoryClass('Bar\\FooClass')-> 
    setFactoryMethod('getInstance')-> 
    setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))-> 
    setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz'), 'qux' => array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%')))-> 
    addMethodCall('setBar', array(new Reference('bar')))-> 
    addMethodCall('initialize')-> 
    setConfigurator('sc_configure') 
; 
$container-> 
    register('foo.baz', '%baz_class%')-> 
    setFactoryClass('%baz_class%')-> 
    setFactoryMethod('getInstance')-> 
    setConfigurator(array('%baz_class%', 'configureStatic1')) 
; 
$container-> 
    register('factory_service', 'Bar')-> 
    setFactoryService('foo.baz')-> 
    setFactoryMethod('getInstance') 
; 
$container 
    ->register('foo_bar', '%foo_class%') 
    ->setScope('prototype') 
; 
$container->getParameterBag()->clear(); 
$container->getParameterBag()->add(array( 
    'foo_class' => 'Bar\FooClass', 
    'baz_class' => 'BazClass', 
    'foo' => 'bar', 
)); 
 
return $container; 
 
 |