<?php
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
class Foo
{
private $ao;
public function __construct(ArrayObject $bar)
{
$this->ao = $bar;
}
public function getObject()
{
$this->ao[md5(microtime())] = '';
return $this->ao;
}
}
$arrDefinition = new Definition('ArrayObject');
$fooDefinition = new Definition('Foo');
$fooDefinition->setPublic(true);
// autowired: get dependency by type hint of Foo class
$fooDefinition->setAutowired(true);
// set definitions in container builder
$containerBuilder = new ContainerBuilder();
$containerBuilder->setDefinition('Foo', $fooDefinition);
$containerBuilder->setDefinition('ArrayObject', $arrDefinition);
$containerBuilder->compile();
// calling Foo service
dump($containerBuilder->get('Foo')->getObject());
dump($containerBuilder->get('Foo')->getObject());