Просмотр файла cvServiceContainer/cvServiceDefinition.php
Размер файла: 5.49Kb
<?php
/**
* cvServiceDefinition
*
* cvServiceDefinition represents a service definition.
*
* @package CYBERVILLE
* @subpackage DI
* @author Fabien Potencier <[email protected]>
* @version $Id$
*/
class cvServiceDefinition {
protected $class = null,
$file = null,
$constructor = null,
$shared = true,
$arguments = array(),
$calls = array(),
$configurator = null;
/**
* Constructor.
*
* @param string $class The service class
* @param array $arguments An array of arguments to pass to the service constructor
*/
public function __construct($class, array $arguments = array()) {
$this->class = $class;
$this->arguments = $arguments;
}
/**
* Sets the constructor method.
*
* @param string $method The method name
*
* @return cvServiceDefinition The current instance
*/
public function setConstructor($method) {
$this->constructor = $method;
return $this;
}
/**
* Gets the constructor method.
*
* @return cvServiceDefinition The constructor method name
*/
public function getConstructor() {
return $this->constructor;
}
/**
* Sets the service class.
*
* @param string $class The service class
*
* @return cvServiceDefinition The current instance
*/
public function setClass($class) {
$this->class = $class;
return $this;
}
/**
* Sets the constructor method.
*
* @return string The service class
*/
public function getClass() {
return $this->class;
}
/**
* Sets the constructor arguments to pass to the service constructor.
*
* @param array $arguments An array of arguments
*
* @return cvServiceDefinition The current instance
*/
public function setArguments(array $arguments) {
$this->arguments = $arguments;
return $this;
}
/**
* Adds a constructor argument to pass to the service constructor.
*
* @param mixed $argument An argument
*
* @return cvServiceDefinition The current instance
*/
public function addArgument($argument) {
$this->arguments[] = $argument;
return $this;
}
/**
* Gets the constructor arguments to pass to the service constructor.
*
* @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 cvServiceDefinition 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 cvServiceDefinition 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;
}
/**
* Sets a file to require before creating the service.
*
* @param string $file A full pathname to include
*
* @return cvServiceDefinition 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 cvServiceDefinition 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 cvServiceDefinition 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;
}
}
?>