Added a shortcut method for autowired definitions
This commit is contained in:
parent
13265aece3
commit
6ef4ce8329
@ -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.
|
||||
*
|
||||
|
@ -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();
|
||||
|
Reference in New Issue
Block a user