namespace Symfony\Component\DependencyInjection\Tests\Compiler;
use PHPUnit\Framework\TestCase;
-use Symfony\Component\DependencyInjection\Scope;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
$this->assertSame($ref, $arguments[0]);
}
- /**
- * @group legacy
- */
- public function testProcessDoesNotInlineWhenAliasedServiceIsNotOfPrototypeScope()
- {
- $container = new ContainerBuilder();
- $container
- ->register('foo')
- ->setPublic(false)
- ;
- $container->setAlias('moo', 'foo');
-
- $container
- ->register('service')
- ->setArguments(array($ref = new Reference('foo')))
- ;
-
- $this->process($container);
-
- $arguments = $container->getDefinition('service')->getArguments();
- $this->assertSame($ref, $arguments[0]);
- }
-
public function testProcessDoesInlineNonSharedService()
{
$container = new ContainerBuilder();
$this->assertNotSame($container->getDefinition('bar'), $arguments[2]);
}
- /**
- * @group legacy
- */
- public function testProcessDoesInlineServiceOfPrototypeScope()
- {
- $container = new ContainerBuilder();
- $container
- ->register('foo')
- ->setScope('prototype')
- ;
- $container
- ->register('bar')
- ->setPublic(false)
- ->setScope('prototype')
- ;
- $container->setAlias('moo', 'bar');
-
- $container
- ->register('service')
- ->setArguments(array(new Reference('foo'), $ref = new Reference('moo'), new Reference('bar')))
- ;
-
- $this->process($container);
-
- $arguments = $container->getDefinition('service')->getArguments();
- $this->assertEquals($container->getDefinition('foo'), $arguments[0]);
- $this->assertNotSame($container->getDefinition('foo'), $arguments[0]);
- $this->assertSame($ref, $arguments[1]);
- $this->assertEquals($container->getDefinition('bar'), $arguments[2]);
- $this->assertNotSame($container->getDefinition('bar'), $arguments[2]);
- }
-
public function testProcessInlinesIfMultipleReferencesButAllFromTheSameDefinition()
{
$container = new ContainerBuilder();
$this->assertSame($ref, $args[0]);
}
- /**
- * @group legacy
- */
- public function testProcessInlinesOnlyIfSameScope()
- {
- $container = new ContainerBuilder();
-
- $container->addScope(new Scope('foo'));
- $a = $container->register('a')->setPublic(false)->setScope('foo');
- $b = $container->register('b')->addArgument(new Reference('a'));
-
- $this->process($container);
- $arguments = $b->getArguments();
- $this->assertEquals(new Reference('a'), $arguments[0]);
- $this->assertTrue($container->hasDefinition('a'));
- }
-
public function testProcessDoesNotInlineWhenServiceIsPrivateButLazy()
{
$container = new ContainerBuilder();