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

processDefinition() public method

Adds method calls if Definition is of required interface
public processDefinition ( Definition $definition, $class = null ) : void
$definition Definition
return void
    public function processDefinition(Definition $definition, $class = null)
    {
        if (in_array($definition, $this->processedDefinitions, true)) {
            return;
        }

        $class = $class ?: $definition->getClass();

        if (!$this->supports($class)) {
            return;
        }

        foreach ($this->calls as $callback) {
            list($method, $arguments) = $callback;
            $definition->addMethodCall($method, $arguments);
        }

        $this->processedDefinitions[] = $definition;
    }

Usage Example

 /**
  * @covers Symfony\Component\DependencyInjection\InterfaceInjector::processDefinition
  */
 public function testProcessesDefinitionOnlyOnce()
 {
     $injector = new InterfaceInjector('Symfony\\Tests\\Component\\DependencyInjection\\Service');
     $injector->addMethodCall('method');
     $definition = $this->getMockDefinition('Symfony\\Tests\\Component\\DependencyInjection\\Service', 1);
     $injector->processDefinition($definition);
     $injector->processDefinition($definition);
 }