Added a shortcut method for autowired definitions

This commit is contained in:
Wouter J 2016-11-26 17:34:50 +01:00 committed by WouterJ
parent 13265aece3
commit 6ef4ce8329
2 changed files with 25 additions and 0 deletions

View File

@ -710,6 +710,22 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
return $this->setDefinition($id, new Definition($class));
}
/**
* Registers an autowired service definition.
*
* This method implements a shortcut for using setDefinition() with
* an autowired definition.
*
* @param string $id The service identifier
* @param null|string $class The service class
*
* @return Definition The created definition
*/
public function autowire($id, $class = null)
{
return $this->setDefinition($id, (new Definition($class))->setAutowired(true));
}
/**
* Adds the service definitions.
*

View File

@ -82,6 +82,15 @@ class ContainerBuilderTest extends \PHPUnit_Framework_TestCase
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $builder->getDefinition('foo'), '->register() returns the newly created Definition instance');
}
public function testAutowire()
{
$builder = new ContainerBuilder();
$builder->autowire('foo', 'Bar\FooClass');
$this->assertTrue($builder->hasDefinition('foo'), '->autowire() registers a new service definition');
$this->assertTrue($builder->getDefinition('foo')->isAutowired(), '->autowire() creates autowired definitions');
}
public function testHas()
{
$builder = new ContainerBuilder();