2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\DependencyInjection ;
2018-11-23 12:29:20 +00:00
use Psr\Container\ContainerInterface as PsrContainerInterface ;
2015-08-17 17:00:26 -07:00
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException ;
use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException ;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException ;
/**
* ContainerInterface is the interface implemented by service container classes .
*
* @ author Fabien Potencier < fabien @ symfony . com >
* @ author Johannes M . Schmitt < schmittjoh @ gmail . com >
*/
2018-11-23 12:29:20 +00:00
interface ContainerInterface extends PsrContainerInterface
2015-08-17 17:00:26 -07:00
{
const EXCEPTION_ON_INVALID_REFERENCE = 1 ;
const NULL_ON_INVALID_REFERENCE = 2 ;
const IGNORE_ON_INVALID_REFERENCE = 3 ;
2018-11-23 12:29:20 +00:00
const IGNORE_ON_UNINITIALIZED_REFERENCE = 4 ;
2015-08-17 17:00:26 -07:00
/**
* Sets a service .
*
* @ param string $id The service identifier
* @ param object $service The service instance
*/
2018-11-23 12:29:20 +00:00
public function set ( $id , $service );
2015-08-17 17:00:26 -07:00
/**
* Gets a service .
*
* @ param string $id The service identifier
* @ param int $invalidBehavior The behavior when the service does not exist
*
* @ return object The associated service
*
* @ throws ServiceCircularReferenceException When a circular reference is detected
* @ throws ServiceNotFoundException When the service is not defined
*
* @ see Reference
*/
public function get ( $id , $invalidBehavior = self :: EXCEPTION_ON_INVALID_REFERENCE );
/**
* Returns true if the given service is defined .
*
* @ param string $id The service identifier
*
* @ return bool true if the service is defined , false otherwise
*/
public function has ( $id );
2018-11-23 12:29:20 +00:00
/**
* Check for whether or not a service has been initialized .
*
* @ param string $id
*
* @ return bool true if the service has been initialized , false otherwise
*/
public function initialized ( $id );
2015-08-17 17:00:26 -07:00
/**
* Gets a parameter .
*
* @ param string $name The parameter name
*
* @ return mixed The parameter value
*
* @ throws InvalidArgumentException if the parameter is not defined
*/
public function getParameter ( $name );
/**
* Checks if a parameter exists .
*
* @ param string $name The parameter name
*
* @ return bool The presence of parameter in container
*/
public function hasParameter ( $name );
/**
* Sets a parameter .
*
* @ param string $name The parameter name
* @ param mixed $value The parameter value
*/
public function setParameter ( $name , $value );
}