Symfony\Component\DependencyInjection\InterfaceInjector::addMethodCall PHP Method

addMethodCall() public method

Adds a method to call to be injected on any service implementing the interface.
public addMethodCall ( string $method, array $arguments = [] ) : InterfaceInjector
$method string The method name to call
$arguments array An array of arguments to pass to the method call
return InterfaceInjector The current instance
    public function addMethodCall($method, array $arguments = array())
    {
        $this->calls[] = array($method, $arguments);

        return $this;
    }

Usage Example

Example #1
0
 public function testInterfaceInjectors()
 {
     $interfaceInjector = new InterfaceInjector('FooClass');
     $interfaceInjector->addMethodCall('setBar', array('someValue'));
     $container = (include self::$fixturesPath . '/containers/interfaces1.php');
     $container->addInterfaceInjector($interfaceInjector);
     $dumper = new XmlDumper($container);
     $classBody = $dumper->dump();
     //TODO: find a better way to test dumper
     //var_dump($classBody);
     $this->assertEquals("<?xml version=\"1.0\" ?>\n\n<container xmlns=\"http://www.symfony-project.org/schema/dic/services\"\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xsi:schemaLocation=\"http://www.symfony-project.org/schema/dic/services http://www.symfony-project.org/schema/dic/services/services-1.0.xsd\">\n  <parameters>\n    <parameter key=\"cla\">Fo</parameter>\n    <parameter key=\"ss\">Class</parameter>\n  </parameters>\n  <interfaces>\n    <interface class=\"FooClass\">\n      <call method=\"setBar\">\n        <argument>someValue</argument>\n      </call>\n    </interface>\n  </interfaces>\n  <services>\n    <service id=\"foo\" class=\"%cla%o%ss%\">\n    </service>\n  </services>\n</container>\n", $classBody);
 }
All Usage Examples Of Symfony\Component\DependencyInjection\InterfaceInjector::addMethodCall