getArgument() public method

Gets an argument to pass to the service constructor/factory method.
public getArgument ( integer $index ) : mixed
$index integer
return mixed The argument value
 private function resolverContainsBufferHandler($expectedResolverIds)
 {
     $actualResolverIds = [];
     foreach ($this->closeBufferHandlersDefinition->getArgument(0) as $argument) {
         $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $argument);
         $actualResolverIds[] = (string) $argument;
     }
     $this->assertEquals($expectedResolverIds, $actualResolverIds);
 }
 /**
  * @param Definition $resource
  *
  * @return CompilerPassInterface
  */
 private function getCompilerPass(Definition $resource)
 {
     $driver = $resource->getArgument(1);
     $path = $resource->getArgument(3);
     $format = $resource->getArgument(4);
     $model = $resource->getArgument(6);
     $class = $this->getCompilerPassClass($driver);
     $method = $this->getCompilerPassMethod($format);
     return $class::$method([$path => ClassUtils::getRealNamespace($model)], []);
 }
 /**
  * @param Definition $definition
  * @param string     $class
  * @param string     $repository
  */
 private function assertDefinition(Definition $definition, $class, $repository)
 {
     $this->assertSame($definition->getClass(), $repository);
     $factory = $definition->getFactory();
     $this->assertSame($factory[1], "getRepository");
     $this->assertSame($definition->getArgument(0), $class);
 }
 /**
  * Checks if manager definition has any filters set.
  *
  * @param Definition $filtersManager
  * @param string     $message
  *
  * @throws InvalidArgumentException
  */
 private function checkManager(Definition $filtersManager, $message = '')
 {
     $filtersContainer = $filtersManager->getArgument(0);
     if (!$filtersContainer->hasMethodCall('set')) {
         throw new InvalidArgumentException($message);
     }
 }
 /**
  * @param Definition $definition
  * @param stdClass $dependables
  */
 private function addDefinitionArguments(Definition $definition, stdClass $dependables)
 {
     $class = $definition->getClass();
     $dependables->references[$class] = array();
     for ($arg = 0; $arg < count($definition->getArguments()); $arg++) {
         $dependables->references[$class][$arg] = $definition->getArgument($arg);
     }
 }
 /**
  * @param ContainerBuilder $container
  * @param Definition       $definition
  * @param string           $tag
  * @param int              $argumentIndex
  */
 public function replaceArgument(ContainerBuilder $container, Definition $definition, $tag, $argumentIndex)
 {
     $transports = $definition->getArgument($argumentIndex);
     $taggedServices = $container->findTaggedServiceIds($tag);
     foreach ($taggedServices as $id => $attributes) {
         $transports[] = new Reference($id);
     }
     $definition->replaceArgument($argumentIndex, $transports);
 }
Example #7
0
 /**
  * Gets an argument to pass to the service constructor/factory method.
  *
  * @param integer $index
  *
  * @return mixed The argument value
  *
  * @throws OutOfBoundsException When the argument does not exist
  *
  * @api
  * @since 4.0.0
  */
 public function getArgument($index)
 {
     try {
         $symfonyArgument = $this->_underlyingSymfonyDefinition->getArgument($index);
         return $this->convertToTubePressReferenceIfNecessary($symfonyArgument);
     } catch (\Symfony\Component\DependencyInjection\Exception\OutOfBoundsException $e) {
         throw new OutOfBoundsException($e);
     }
 }
 /**
  * @param Definition $definition
  * @param string     $class
  * @param string     $repository
  * @param bool       $filterType
  */
 private function assertDefinition(Definition $definition, $class, $repository, $filterType)
 {
     $this->assertSame($definition->getClass(), $repository);
     $factory = $definition->getFactory();
     $this->assertSame($factory[1], "getRepository");
     $this->assertSame($definition->getArgument(0), $class);
     if ($filterType) {
         $this->assertTrue($definition->hasMethodCall('setFilterTypeManager'));
     }
 }
 public function testProcessWithoutDefinition()
 {
     $pass = new AddDecoderPass();
     $definition = new Definition(null, array(null));
     $container = $this->prophesize(ContainerBuilder::class);
     $container->hasDefinition('brainbits.transcoder.decoder.resolver')->willReturn(false);
     $container->findTaggedServiceIds('transcoder.decoder')->shouldNotBeCalled();
     $container->getDefinition('brainbits.transcoder.decoder.resolver')->shouldNotBeCalled();
     $pass->process($container->reveal());
     $this->assertNull($definition->getArgument(0)[0]);
 }
 private function evaluateArgumentValue(Definition $definition, $returnResult)
 {
     $actualValue = $definition->getArgument($this->argumentIndex);
     $constraint = new \PHPUnit_Framework_Constraint_IsEqual($this->expectedValue);
     if (!$constraint->evaluate($actualValue, '', true)) {
         if ($returnResult) {
             return false;
         }
         $this->fail($definition, sprintf('The value of argument with index %d (%s) is not equal to the expected value (%s)', $this->argumentIndex, $this->exporter->export($actualValue), $this->exporter->export($this->expectedValue)));
     }
     return true;
 }
 /**
  * @param Definition $symfonyTranslator
  *
  * @return array
  */
 private function extractResourcesFilesFromSymfonyTranslator(Definition $symfonyTranslator)
 {
     $options = $symfonyTranslator->getArgument(3);
     $languagesFiles = isset($options['resource_files']) ? $options['resource_files'] : [];
     $resourceFiles = [];
     foreach ($languagesFiles as $language => $files) {
         foreach ($files as $file) {
             $resourceFiles[] = $file;
         }
     }
     return $resourceFiles;
 }
 function it_sets_services_to_array_of_controller_services_definitions(ContainerBuilder $container, Definition $definition1, Definition $definition2)
 {
     $container->findTaggedServiceIds(InjectableCompilerPass::TAG_NAME)->willReturn(['my.first.controller' => [InjectableCompilerPass::TAG_NAME], 'my.second.controller' => [InjectableCompilerPass::TAG_NAME]]);
     $controllersObject = (object) array('references' => array('My_First_Controller' => [0 => 'arg1', 1 => 'arg2'], 'My_Second_Controller' => [0 => 'arg1']));
     $definition1->getClass()->willReturn('My_First_Controller');
     $definition1->getArguments()->willReturn(['arg1', 'arg2']);
     $definition1->getArgument(0)->willReturn('arg1');
     $definition1->getArgument(1)->willReturn('arg2');
     $container->findDefinition('my.first.controller')->willReturn($definition1);
     $definition2->getClass()->willReturn('My_Second_Controller');
     $definition2->getArguments()->willReturn(['arg1']);
     $definition2->getArgument(0)->willReturn('arg1');
     $container->findDefinition('my.second.controller')->willReturn($definition2);
     $this->process($container);
     $container->set(InjectableCompilerPass::INJECTABLES_SERVICE_ID, $controllersObject)->shouldHaveBeenCalled();
 }
 public function testProcess()
 {
     $container = new ContainerBuilder();
     $nonInterfaceListener = new NonInterfaceListener();
     $nonInterfaceListenerDefinition = new Definition(get_class($nonInterfaceListener));
     $nonInterfaceListenerDefinition->addTag('doctrine.event_listener');
     $nonInterfaceSubscriber = new NonInterfaceListener();
     $nonInterfaceSubscriberDefinition = new Definition(get_class($nonInterfaceSubscriber));
     $nonInterfaceSubscriberDefinition->addTag('doctrine.event_subscriber');
     $testListener = new TestListener();
     $testListenerDefinition = new Definition(get_class($testListener));
     $testListenerDefinition->addTag('doctrine.event_listener');
     $testSubscriber = new TestListener();
     $testSubscriberDefinition = new Definition(get_class($testSubscriber));
     $testSubscriberDefinition->addTag('doctrine.event_subscriber');
     $container->addDefinitions(['test.non_interface_listener' => $nonInterfaceListenerDefinition, 'test.non_interface_subscriber' => $nonInterfaceSubscriberDefinition, 'test.listener' => $testListenerDefinition, 'test.subscriber' => $testSubscriberDefinition]);
     $managerDefinition = new Definition();
     $managerDefinition->addArgument([]);
     $container->addDefinitions([OptionalListenersCompilerPass::OPTIONAL_LISTENER_MANAGER => $managerDefinition]);
     $compiler = new OptionalListenersCompilerPass();
     $compiler->process($container);
     $this->assertEquals(['test.listener', 'test.subscriber'], $managerDefinition->getArgument(0));
 }
 public function testProcess()
 {
     $container = new ContainerBuilder();
     $container->setParameter('ezpublish.config_resolver.updateable_services', array());
     $updateableServices = array();
     $def1Arg1 = 'foo';
     $def1Arg2 = new Reference('foo.bar');
     $def1 = new Definition('stdClass', array($def1Arg1, $def1Arg2));
     $def2 = new Definition('stdClass', array('$bar;some_namespace$', array()));
     $def3 = new Definition('stdClass', array('$content.default_ttl;ezsettings;ezdemo_site_admin$'));
     $def4 = new Definition('stdClass', array('$languages$'));
     $def5Arg1 = new Reference('def3');
     $def5 = new Definition('stdClass', array($def5Arg1));
     $def6Arg1 = new Reference('def1');
     $def6Arg2 = new Reference('def4');
     $def6 = new Definition('stdClass', array($def6Arg1, $def6Arg2));
     $def7MethodCalls = array(array('setFoo', array('something', new Reference('def1'))), array('setBar', array(array('baz'))));
     $def7 = new Definition('stdClass');
     $def7->setMethodCalls($def7MethodCalls);
     $def8MethodCalls = array(array('setFoo', array('$foo$')), array('setBar', array('$bar;baz$')));
     $def8 = new Definition('stdClass');
     $def8->setMethodCalls($def8MethodCalls);
     $container->setDefinitions(array('def1' => $def1, 'def2' => $def2, 'def3' => $def3, 'def4' => $def4, 'def5' => $def5, 'def6' => $def6, 'def7' => $def7, 'def8' => $def8));
     $configResolverPass = new ConfigResolverParameterPass(new DynamicSettingParser());
     $configResolverPass->process($container);
     // Ensure that non concerned services stayed untouched.
     self::assertSame($def1Arg1, $def1->getArgument(0));
     self::assertSame($def1Arg2, $def1->getArgument(1));
     self::assertSame($def1, $container->getDefinition('def1'));
     self::assertSame($def5Arg1, $def5->getArgument(0));
     self::assertSame($def5, $container->getDefinition('def5'));
     self::assertSame($def6Arg1, $def6->getArgument(0));
     self::assertSame($def6Arg2, $def6->getArgument(1));
     self::assertSame($def6, $container->getDefinition('def6'));
     self::assertSame($def7MethodCalls, $def7->getMethodCalls());
     self::assertSame($def7, $container->getDefinition('def7'));
     // Check that concerned services arguments have been correctly transformed.
     $def2arg1 = $def2->getArgument(0);
     self::assertInstanceOf('Symfony\\Component\\ExpressionLanguage\\Expression', $def2arg1);
     self::assertSame('service("ezpublish.config.resolver").getParameter("bar", "some_namespace", null)', (string) $def2arg1);
     // Also check 2nd argument
     self::assertSame(array(), $def2->getArgument(1));
     $def3arg1 = $def3->getArgument(0);
     self::assertInstanceOf('Symfony\\Component\\ExpressionLanguage\\Expression', $def3arg1);
     self::assertSame('service("ezpublish.config.resolver").getParameter("content.default_ttl", "ezsettings", "ezdemo_site_admin")', (string) $def3arg1);
     $def4arg1 = $def4->getArgument(0);
     self::assertInstanceOf('Symfony\\Component\\ExpressionLanguage\\Expression', $def4arg1);
     self::assertSame('service("ezpublish.config.resolver").getParameter("languages", null, null)', (string) $def4arg1);
     $def8Calls = $def8->getMethodCalls();
     self::assertSame(count($def8MethodCalls), count($def8Calls));
     self::assertSame($def8MethodCalls[0][0], $def8Calls[0][0]);
     self::assertInstanceOf('Symfony\\Component\\ExpressionLanguage\\Expression', $def8Calls[0][1][0]);
     $exprSetFoo = 'service("ezpublish.config.resolver").getParameter("foo", null, null)';
     self::assertSame($exprSetFoo, (string) $def8Calls[0][1][0]);
     self::assertSame($def8MethodCalls[1][0], $def8Calls[1][0]);
     self::assertInstanceOf('Symfony\\Component\\ExpressionLanguage\\Expression', $def8Calls[1][1][0]);
     $exprSetBar = 'service("ezpublish.config.resolver").getParameter("bar", "baz", null)';
     self::assertSame($exprSetBar, (string) $def8Calls[1][1][0]);
     $updateableServices['def8'] = array(array('setFoo', $exprSetFoo), array('setBar', $exprSetBar));
     self::assertTrue($container->hasParameter('ezpublish.config_resolver.resettable_services'));
     self::assertEquals(array('def2', 'def3', 'def4', 'def5', 'def6'), $container->getParameter('ezpublish.config_resolver.resettable_services'));
     self::assertEquals($updateableServices, $container->getParameter('ezpublish.config_resolver.updateable_services'));
 }
 private function matchNames()
 {
     $spoolNames = array_keys($this->swiftMailerCleaner->getArgument(0));
     $transportNames = array_keys($this->swiftMailerCleaner->getArgument(1));
     $this->assertEquals($spoolNames, $transportNames);
 }
 private function assertUrlPackage(ContainerBuilder $container, Definition $package, $baseUrls, $version, $format)
 {
     $this->assertEquals('assets.url_package', $package->getParent());
     $this->assertEquals($baseUrls, $package->getArgument(0));
     $this->assertVersionStrategy($container, $package->getArgument(1), $version, $format);
 }
Example #17
0
 /**
  * @expectedException \OutOfBoundsException
  */
 public function testGetArgumentShouldCheckBounds()
 {
     $def = new Definition('stdClass');
     $def->addArgument('foo');
     $def->getArgument(1);
 }
 public function testProcess()
 {
     $container = new ContainerBuilder();
     $dynamicSettingsServices = array();
     $def1Arg1 = 'foo';
     $def1Arg2 = new Reference('foo.bar');
     $def1 = new Definition('stdClass', array($def1Arg1, $def1Arg2));
     $def2 = new Definition('stdClass', array('$bar;some_namespace$', array()));
     $def3 = new Definition('stdClass', array('$content.default_ttl;ezsettings;ezdemo_site_admin$'));
     $def4 = new Definition('stdClass', array('$languages$'));
     $def5Arg1 = new Reference('def3');
     $def5 = new Definition('stdClass', array($def5Arg1));
     $def6Arg1 = new Reference('def1');
     $def6Arg2 = new Reference('def4');
     $def6 = new Definition('stdClass', array($def6Arg1, $def6Arg2));
     $def7MethodCalls = array(array('setFoo', array('something', new Reference('def1'))), array('setBar', array(array('baz'))));
     $def7 = new Definition('stdClass');
     $def7->setMethodCalls($def7MethodCalls);
     $def8MethodCalls = array(array('setFoo', array('$foo$')), array('setBar', array('$bar;baz$')));
     $def8 = new Definition('stdClass');
     $def8->setMethodCalls($def8MethodCalls);
     $container->setDefinitions(array('def1' => $def1, 'def2' => $def2, 'def3' => $def3, 'def4' => $def4, 'def5' => $def5, 'def6' => $def6, 'def7' => $def7, 'def8' => $def8));
     $configResolverPass = new ConfigResolverParameterPass(new DynamicSettingParser());
     $configResolverPass->process($container);
     // Ensure that non concerned services stayed untouched.
     $this->assertSame($def1Arg1, $def1->getArgument(0));
     $this->assertSame($def1Arg2, $def1->getArgument(1));
     $this->assertSame($def1, $container->getDefinition('def1'));
     $this->assertSame($def5Arg1, $def5->getArgument(0));
     $this->assertSame($def5, $container->getDefinition('def5'));
     $this->assertSame($def6Arg1, $def6->getArgument(0));
     $this->assertSame($def6Arg2, $def6->getArgument(1));
     $this->assertSame($def6, $container->getDefinition('def6'));
     $this->assertSame($def7MethodCalls, $def7->getMethodCalls());
     $this->assertSame($def7, $container->getDefinition('def7'));
     // Check that concerned services arguments have been correctly transformed.
     /** @var Reference $def2arg1 */
     $def2arg1 = $def2->getArgument(0);
     $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $def2arg1);
     $expectedServiceHelperId1 = 'ezpublish.config_resolver.fake.bar_some_namespace_';
     $dynamicSettingsServices[] = $expectedServiceHelperId1;
     $this->assertSame((string) $def2arg1, $expectedServiceHelperId1);
     $this->assertTrue($container->has($expectedServiceHelperId1));
     $defHelper1 = $container->getDefinition($expectedServiceHelperId1);
     $this->assertSame('ezpublish.config.resolver', $defHelper1->getFactoryService());
     $this->assertSame('getParameter', $defHelper1->getFactoryMethod());
     $this->assertSame(array('bar', 'some_namespace', null), $defHelper1->getArguments());
     // Also check 2nd argument
     $this->assertSame(array(), $def2->getArgument(1));
     /** @var Reference $def3arg1 */
     $def3arg1 = $def3->getArgument(0);
     $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $def3arg1);
     $expectedServiceHelperId2 = 'ezpublish.config_resolver.fake.content.default_ttl_ezsettings_ezdemo_site_admin';
     $dynamicSettingsServices[] = $expectedServiceHelperId2;
     $this->assertSame((string) $def3arg1, $expectedServiceHelperId2);
     $this->assertTrue($container->has($expectedServiceHelperId2));
     $defHelper2 = $container->getDefinition($expectedServiceHelperId2);
     $this->assertSame('ezpublish.config.resolver', $defHelper2->getFactoryService());
     $this->assertSame('getParameter', $defHelper2->getFactoryMethod());
     $this->assertSame(array('content.default_ttl', 'ezsettings', 'ezdemo_site_admin'), $defHelper2->getArguments());
     /** @var Reference $def4arg1 */
     $def4arg1 = $def4->getArgument(0);
     $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $def4arg1);
     $expectedServiceHelperId3 = 'ezpublish.config_resolver.fake.languages__';
     $dynamicSettingsServices[] = $expectedServiceHelperId3;
     $this->assertSame((string) $def4arg1, $expectedServiceHelperId3);
     $this->assertTrue($container->has($expectedServiceHelperId3));
     $defHelper3 = $container->getDefinition($expectedServiceHelperId3);
     $this->assertSame('ezpublish.config.resolver', $defHelper3->getFactoryService());
     $this->assertSame('getParameter', $defHelper3->getFactoryMethod());
     $this->assertSame(array('languages', null, null), $defHelper3->getArguments());
     /** @var Reference $def4arg1 */
     $def8Calls = $def8->getMethodCalls();
     $this->assertSame(count($def8MethodCalls), count($def8Calls));
     $this->assertSame($def8MethodCalls[0][0], $def8Calls[0][0]);
     $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $def8Calls[0][1][0]);
     $expectedServiceHelperId4 = 'ezpublish.config_resolver.fake.foo__';
     $dynamicSettingsServices[] = $expectedServiceHelperId4;
     $this->assertSame((string) $def8Calls[0][1][0], $expectedServiceHelperId4);
     $this->assertTrue($container->has($expectedServiceHelperId4));
     $defHelper4 = $container->getDefinition($expectedServiceHelperId4);
     $this->assertSame('ezpublish.config.resolver', $defHelper4->getFactoryService());
     $this->assertSame('getParameter', $defHelper4->getFactoryMethod());
     $this->assertSame(array('foo', null, null), $defHelper4->getArguments());
     $this->assertSame($def8MethodCalls[1][0], $def8Calls[1][0]);
     $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $def8Calls[1][1][0]);
     $expectedServiceHelperId5 = 'ezpublish.config_resolver.fake.bar_baz_';
     $dynamicSettingsServices[] = $expectedServiceHelperId5;
     $this->assertSame((string) $def8Calls[1][1][0], $expectedServiceHelperId5);
     $this->assertTrue($container->has($expectedServiceHelperId5));
     $defHelper5 = $container->getDefinition($expectedServiceHelperId5);
     $this->assertSame('ezpublish.config.resolver', $defHelper5->getFactoryService());
     $this->assertSame('getParameter', $defHelper5->getFactoryMethod());
     $this->assertSame(array('bar', 'baz', null), $defHelper5->getArguments());
     $this->assertTrue($container->hasParameter('ezpublish.config_resolver.resettable_services'));
     $this->assertEquals(array('def2', 'def3', 'def4', 'def5', 'def6'), $container->getParameter('ezpublish.config_resolver.resettable_services'));
     $this->assertTrue($container->hasParameter('ezpublish.config_resolver.dynamic_settings_services'));
     $this->assertEquals($dynamicSettingsServices, $container->getParameter('ezpublish.config_resolver.dynamic_settings_services'));
 }
 /**
  * Resolves the class argument of the admin to an actual class (in case of %parameter%).
  *
  * @param Definition       $admin
  * @param ContainerBuilder $container
  *
  * @return string
  */
 protected function getManagedClass(Definition $admin, ContainerBuilder $container)
 {
     return $container->getParameterBag()->resolveValue($admin->getArgument(1));
 }
Example #20
0
 /**
  * @param Definition $definition
  *
  * @return string|null
  */
 private function getResourceModel(Definition $definition)
 {
     return $definition->getArgument(2);
 }