You are here

class DefinitionDecorator in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/dependency-injection/DefinitionDecorator.php \Symfony\Component\DependencyInjection\DefinitionDecorator

This definition decorates another definition.

@author Johannes M. Schmitt <schmittjoh@gmail.com>

Hierarchy

Expanded class hierarchy of DefinitionDecorator

6 files declare their use of DefinitionDecorator
DefinitionDecoratorTest.php in vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php
ResolveDefinitionTemplatesPass.php in vendor/symfony/dependency-injection/Compiler/ResolveDefinitionTemplatesPass.php
ResolveDefinitionTemplatesPassTest.php in vendor/symfony/dependency-injection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
XmlFileLoader.php in vendor/symfony/dependency-injection/Loader/XmlFileLoader.php
YamlFileLoader.php in vendor/symfony/dependency-injection/Loader/YamlFileLoader.php

... See full list

File

vendor/symfony/dependency-injection/DefinitionDecorator.php, line 22

Namespace

Symfony\Component\DependencyInjection
View source
class DefinitionDecorator extends Definition {
  private $parent;
  private $changes = array();

  /**
   * Constructor.
   *
   * @param string $parent The id of Definition instance to decorate.
   */
  public function __construct($parent) {
    parent::__construct();
    $this->parent = $parent;
  }

  /**
   * Returns the Definition being decorated.
   *
   * @return string
   */
  public function getParent() {
    return $this->parent;
  }

  /**
   * Returns all changes tracked for the Definition object.
   *
   * @return array An array of changes for this Definition
   */
  public function getChanges() {
    return $this->changes;
  }

  /**
   * {@inheritdoc}
   */
  public function setClass($class) {
    $this->changes['class'] = true;
    return parent::setClass($class);
  }

  /**
   * {@inheritdoc}
   */
  public function setFactory($callable) {
    $this->changes['factory'] = true;
    return parent::setFactory($callable);
  }

  /**
   * {@inheritdoc}
   *
   */
  public function setFactoryClass($class) {
    $this->changes['factory_class'] = true;
    return parent::setFactoryClass($class);
  }

  /**
   * {@inheritdoc}
   */
  public function setFactoryMethod($method) {
    $this->changes['factory_method'] = true;
    return parent::setFactoryMethod($method);
  }

  /**
   * {@inheritdoc}
   */
  public function setFactoryService($service) {
    $this->changes['factory_service'] = true;
    return parent::setFactoryService($service);
  }

  /**
   * {@inheritdoc}
   */
  public function setConfigurator($callable) {
    $this->changes['configurator'] = true;
    return parent::setConfigurator($callable);
  }

  /**
   * {@inheritdoc}
   */
  public function setFile($file) {
    $this->changes['file'] = true;
    return parent::setFile($file);
  }

  /**
   * {@inheritdoc}
   */
  public function setPublic($boolean) {
    $this->changes['public'] = true;
    return parent::setPublic($boolean);
  }

  /**
   * {@inheritdoc}
   */
  public function setLazy($boolean) {
    $this->changes['lazy'] = true;
    return parent::setLazy($boolean);
  }

  /**
   * {@inheritdoc}
   */
  public function setDecoratedService($id, $renamedId = null) {
    $this->changes['decorated_service'] = true;
    return parent::setDecoratedService($id, $renamedId);
  }

  /**
   * Gets an argument to pass to the service constructor/factory method.
   *
   * If replaceArgument() has been used to replace an argument, this method
   * will return the replacement value.
   *
   * @param int $index
   *
   * @return mixed The argument value
   *
   * @throws OutOfBoundsException When the argument does not exist
   */
  public function getArgument($index) {
    if (array_key_exists('index_' . $index, $this->arguments)) {
      return $this->arguments['index_' . $index];
    }
    $lastIndex = count(array_filter(array_keys($this->arguments), 'is_int')) - 1;
    if ($index < 0 || $index > $lastIndex) {
      throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, $lastIndex));
    }
    return $this->arguments[$index];
  }

  /**
   * You should always use this method when overwriting existing arguments
   * of the parent definition.
   *
   * If you directly call setArguments() keep in mind that you must follow
   * certain conventions when you want to overwrite the arguments of the
   * parent definition, otherwise your arguments will only be appended.
   *
   * @param int   $index
   * @param mixed $value
   *
   * @return DefinitionDecorator the current instance
   *
   * @throws InvalidArgumentException when $index isn't an integer
   */
  public function replaceArgument($index, $value) {
    if (!is_int($index)) {
      throw new InvalidArgumentException('$index must be an integer.');
    }
    $this->arguments['index_' . $index] = $value;
    return $this;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Definition::$abstract private property
Definition::$arguments protected property
Definition::$calls private property
Definition::$class private property
Definition::$configurator private property
Definition::$decoratedService private property
Definition::$factory private property
Definition::$factoryClass private property
Definition::$factoryMethod private property
Definition::$factoryService private property
Definition::$file private property
Definition::$lazy private property
Definition::$properties private property
Definition::$public private property
Definition::$scope private property
Definition::$synchronized private property
Definition::$synthetic private property
Definition::$tags private property
Definition::addArgument public function Adds an argument to pass to the service constructor/factory method.
Definition::addMethodCall public function Adds a method to call after service initialization.
Definition::addTag public function Adds a tag for this definition.
Definition::clearTag public function Clears all tags for a given name.
Definition::clearTags public function Clears the tags for this definition.
Definition::getArguments public function Gets the arguments to pass to the service constructor/factory method.
Definition::getClass public function Gets the service class.
Definition::getConfigurator public function Gets the configurator to call after the service is fully initialized.
Definition::getDecoratedService public function Gets the service that decorates this service.
Definition::getFactory public function Gets the factory.
Definition::getFactoryClass Deprecated public function Gets the factory class.
Definition::getFactoryMethod Deprecated public function Gets the factory method.
Definition::getFactoryService Deprecated public function Gets the factory service id.
Definition::getFile public function Gets the file to require before creating the service.
Definition::getMethodCalls public function Gets the methods to call after service initialization.
Definition::getProperties public function
Definition::getScope public function Returns the scope of the service.
Definition::getTag public function Gets a tag by name.
Definition::getTags public function Returns all tags.
Definition::hasMethodCall public function Check if the current definition has a given method to call after service initialization.
Definition::hasTag public function Whether this definition has a tag with the given name.
Definition::isAbstract public function Whether this definition is abstract, that means it merely serves as a template for other definitions.
Definition::isLazy public function Whether this service is lazy.
Definition::isPublic public function Whether this service is public facing.
Definition::isSynchronized Deprecated public function Whether this service is synchronized.
Definition::isSynthetic public function Whether this definition is synthetic, that is not constructed by the container, but dynamically injected.
Definition::removeMethodCall public function Removes a method to call after service initialization.
Definition::setAbstract public function Whether this definition is abstract, that means it merely serves as a template for other definitions.
Definition::setArguments public function Sets the arguments to pass to the service constructor/factory method.
Definition::setMethodCalls public function Sets the methods to call after service initialization.
Definition::setProperties public function
Definition::setProperty public function
Definition::setScope public function Sets the scope of the service.
Definition::setSynchronized Deprecated public function Sets the synchronized flag of this service.
Definition::setSynthetic public function Sets whether this definition is synthetic, that is not constructed by the container, but dynamically injected.
Definition::setTags public function Sets tags for this definition.
DefinitionDecorator::$changes private property
DefinitionDecorator::$parent private property
DefinitionDecorator::getArgument public function Gets an argument to pass to the service constructor/factory method. Overrides Definition::getArgument
DefinitionDecorator::getChanges public function Returns all changes tracked for the Definition object.
DefinitionDecorator::getParent public function Returns the Definition being decorated.
DefinitionDecorator::replaceArgument public function You should always use this method when overwriting existing arguments of the parent definition. Overrides Definition::replaceArgument
DefinitionDecorator::setClass public function Sets the service class. Overrides Definition::setClass
DefinitionDecorator::setConfigurator public function Sets a configurator to call after the service is fully initialized. Overrides Definition::setConfigurator
DefinitionDecorator::setDecoratedService public function Sets the service that this service is decorating. Overrides Definition::setDecoratedService
DefinitionDecorator::setFactory public function Sets a factory. Overrides Definition::setFactory
DefinitionDecorator::setFactoryClass public function Sets the name of the class that acts as a factory using the factory method, which will be invoked statically. Overrides Definition::setFactoryClass
DefinitionDecorator::setFactoryMethod public function Sets the factory method able to create an instance of this class. Overrides Definition::setFactoryMethod
DefinitionDecorator::setFactoryService public function Sets the name of the service that acts as a factory using the factory method. Overrides Definition::setFactoryService
DefinitionDecorator::setFile public function Sets a file to require before creating the service. Overrides Definition::setFile
DefinitionDecorator::setLazy public function Sets the lazy flag of this service. Overrides Definition::setLazy
DefinitionDecorator::setPublic public function Sets the visibility of this service. Overrides Definition::setPublic
DefinitionDecorator::__construct public function Constructor. Overrides Definition::__construct