* $di = new Phalcon\DI();
*
* //Using a string definition
* $di->set('request', 'Phalcon\Http\Request', true);
*
* //Using an anonymous function
* $di->set('request', function(){
* return new Phalcon\Http\Request();
* }, true);
*
* $request = $di->getRequest();
*
*
*/
class DI implements \Phalcon\DiInterface {
protected $_services;
protected $_sharedInstances;
protected $_freshInstance;
protected static $_default;
/**
* \Phalcon\DI constructor
*
*/
public function __construct(){ }
/**
* Registers a service in the services container
*
* @param string $name
* @param mixed $definition
* @param boolean $shared
* @return \Phalcon\DI\ServiceInterface
*/
public function set($name, $definition, $shared=null){ }
/**
* Registers an "always shared" service in the services container
*
* @param string $name
* @param mixed $definition
* @return \Phalcon\DI\ServiceInterface
*/
public function setShared($name, $definition){ }
/**
* Removes a service in the services container
*
* @param string $name
*/
public function remove($name){ }
/**
* Attempts to register a service in the services container
* Only is successful if a service hasn't been registered previously
* with the same name
*
* @param string $name
* @param mixed $definition
* @param boolean $shared
* @return \Phalcon\DI\ServiceInterface
*/
public function attempt($name, $definition, $shared=null){ }
/**
* Sets a service using a raw \Phalcon\DI\Service definition
*
* @param string $name
* @param \Phalcon\DI\ServiceInterface $rawDefinition
* @return \Phalcon\DI\ServiceInterface
*/
public function setRaw($name, $rawDefinition){ }
/**
* Returns a service definition without resolving
*
* @param string $name
* @return mixed
*/
public function getRaw($name){ }
/**
* Returns a \Phalcon\DI\Service instance
*
* @param string $name
* @return \Phalcon\DI\ServiceInterface
*/
public function getService($name){ }
/**
* Resolves the service based on its configuration
*
* @param string $name
* @param array $parameters
* @return mixed
*/
public function get($name, $parameters=null){ }
/**
* Resolves a service, the resolved service is stored in the DI, subsequent requests for this service will return the same instance
*
* @param string $name
* @param array $parameters
* @return mixed
*/
public function getShared($name, $parameters=null){ }
/**
* Check whether the DI contains a service by a name
*
* @param string $name
* @return boolean
*/
public function has($name){ }
/**
* Check whether the last service obtained via getShared produced a fresh instance or an existing one
*
* @return boolean
*/
public function wasFreshInstance(){ }
/**
* Return the services registered in the DI
*
* @return \Phalcon\DI\Service[]
*/
public function getServices(){ }
/**
* Check if a service is registered using the array syntax.
* Alias for \Phalcon\Di::has()
*
* @param string $name
* @return boolean
*/
public function offsetExists($name){ }
/**
* Allows to register a shared service using the array syntax.
* Alias for \Phalcon\Di::setShared()
*
*
* $di['request'] = new \Phalcon\Http\Request();
*
*
* @param string $name
* @param mixed $definition
*/
public function offsetSet($name, $definition){ }
/**
* Allows to obtain a shared service using the array syntax.
* Alias for \Phalcon\Di::getShared()
*
*
* var_dump($di['request']);
*
*
* @param string $name
* @return mixed
*/
public function offsetGet($name, $parameters=null){ }
/**
* Removes a service from the services container using the array syntax.
* Alias for \Phalcon\Di::remove()
*
* @param string $name
*/
public function offsetUnset($name){ }
/**
* Magic method to get or set services using setters/getters
*
* @param string $method
* @param array $arguments
* @return mixed
*/
public function __call($method, $arguments=null){ }
/**
* Set a default dependency injection container to be obtained into static methods
*
* @param \Phalcon\DiInterface $dependencyInjector
*/
public static function setDefault($dependencyInjector){ }
/**
* Return the lastest DI created
*
* @return \Phalcon\DiInterface
*/
public static function getDefault(){ }
/**
* Resets the internal default DI
*/
public static function reset(){ }
}
}