123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- <?php
- namespace Symfony\Components\DependencyInjection;
- /*
- * This file is part of the Symfony framework.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- /**
- * Definition represents a service definition.
- *
- * @package Symfony
- * @subpackage Components_DependencyInjection
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- */
- class Definition
- {
- protected $class;
- protected $file;
- protected $factoryMethod;
- protected $factoryService;
- protected $shared;
- protected $arguments;
- protected $calls;
- protected $configurator;
- protected $annotations;
- /**
- * Constructor.
- *
- * @param string $class The service class
- * @param array $arguments An array of arguments to pass to the service constructor
- */
- public function __construct($class = null, array $arguments = array())
- {
- $this->class = $class;
- $this->arguments = $arguments;
- $this->calls = array();
- $this->shared = true;
- $this->annotations = array();
- }
- /**
- * Sets the factory method able to create an instance of this class.
- *
- * @param string $method The method name
- *
- * @return Definition The current instance
- */
- public function setFactoryMethod($method)
- {
- $this->factoryMethod = $method;
- return $this;
- }
- /**
- * Gets the factory method.
- *
- * @return string The factory method name
- */
- public function getFactoryMethod()
- {
- return $this->factoryMethod;
- }
- /**
- * Sets the name of the service that acts as a factory using the constructor method.
- *
- * @param string $factoryService The factory service id
- *
- * @return Definition The current instance
- */
- public function setFactoryService($factoryService)
- {
- $this->factoryService = $factoryService;
- return $this;
- }
- /**
- * Gets the factory service id.
- *
- * @return string The factory service id
- */
- public function getFactoryService()
- {
- return $this->factoryService;
- }
- /**
- * Sets the service class.
- *
- * @param string $class The service class
- *
- * @return Definition The current instance
- */
- public function setClass($class)
- {
- $this->class = $class;
- return $this;
- }
- /**
- * Sets the service class.
- *
- * @return string The service class
- */
- public function getClass()
- {
- return $this->class;
- }
- /**
- * Sets the arguments to pass to the service constructor/factory method.
- *
- * @param array $arguments An array of arguments
- *
- * @return Definition The current instance
- */
- public function setArguments(array $arguments)
- {
- $this->arguments = $arguments;
- return $this;
- }
- /**
- * Adds an argument to pass to the service constructor/factory method.
- *
- * @param mixed $argument An argument
- *
- * @return Definition The current instance
- */
- public function addArgument($argument)
- {
- $this->arguments[] = $argument;
- return $this;
- }
- /**
- * Gets the arguments to pass to the service constructor/factory method.
- *
- * @return array The array of arguments
- */
- public function getArguments()
- {
- return $this->arguments;
- }
- /**
- * Sets the methods to call after service initialization.
- *
- * @param array $calls An array of method calls
- *
- * @return Definition The current instance
- */
- public function setMethodCalls(array $calls = array())
- {
- $this->calls = array();
- foreach ($calls as $call) {
- $this->addMethodCall($call[0], $call[1]);
- }
- return $this;
- }
- /**
- * Adds a method to call after service initialization.
- *
- * @param string $method The method name to call
- * @param array $arguments An array of arguments to pass to the method call
- *
- * @return Definition The current instance
- */
- public function addMethodCall($method, array $arguments = array())
- {
- $this->calls[] = array($method, $arguments);
- return $this;
- }
- /**
- * Gets the methods to call after service initialization.
- *
- * @return array An array of method calls
- */
- public function getMethodCalls()
- {
- return $this->calls;
- }
- /**
- * Returns all annotations.
- *
- * @return array An array of annotations
- */
- public function getAnnotations()
- {
- return $this->annotations;
- }
- /**
- * Gets an annotation by name.
- *
- * @param string $name The annotation name
- *
- * @return array An array of attributes
- */
- public function getAnnotation($name)
- {
- if (!isset($this->annotations[$name])) {
- $this->annotations[$name] = array();
- }
- return $this->annotations[$name];
- }
- /**
- * Adds an annotation for this definition.
- *
- * @param string $name The annotation name
- * @param array $attributes An array of attributes
- *
- * @return Definition The current instance
- */
- public function addAnnotation($name, array $attributes = array())
- {
- if (!isset($this->annotations[$name])) {
- $this->annotations[$name] = array();
- }
- $this->annotations[$name][] = $attributes;
- return $this;
- }
- /**
- * Clears the annotation for this definition.
- *
- * @return Definition The current instance
- */
- public function clearAnnotations()
- {
- $this->annotations = array();
- return $this;
- }
- /**
- * Sets a file to require before creating the service.
- *
- * @param string $file A full pathname to include
- *
- * @return Definition The current instance
- */
- public function setFile($file)
- {
- $this->file = $file;
- return $this;
- }
- /**
- * Gets the file to require before creating the service.
- *
- * @return string The full pathname to include
- */
- public function getFile()
- {
- return $this->file;
- }
- /**
- * Sets if the service must be shared or not.
- *
- * @param Boolean $shared Whether the service must be shared or not
- *
- * @return Definition The current instance
- */
- public function setShared($shared)
- {
- $this->shared = (Boolean) $shared;
- return $this;
- }
- /**
- * Returns true if the service must be shared.
- *
- * @return Boolean true if the service is shared, false otherwise
- */
- public function isShared()
- {
- return $this->shared;
- }
- /**
- * Sets a configurator to call after the service is fully initialized.
- *
- * @param mixed $callable A PHP callable
- *
- * @return Definition The current instance
- */
- public function setConfigurator($callable)
- {
- $this->configurator = $callable;
- return $this;
- }
- /**
- * Gets the configurator to call after the service is fully initialized.
- *
- * @return mixed The PHP callable to call
- */
- public function getConfigurator()
- {
- return $this->configurator;
- }
- }
|