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 ;
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 >
*/
interface ContainerInterface
{
const EXCEPTION_ON_INVALID_REFERENCE = 1 ;
const NULL_ON_INVALID_REFERENCE = 2 ;
const IGNORE_ON_INVALID_REFERENCE = 3 ;
const SCOPE_CONTAINER = 'container' ;
const SCOPE_PROTOTYPE = 'prototype' ;
/**
* Sets a service .
*
2016-04-20 09:56:34 -07:00
* Note : The $scope parameter is deprecated since version 2.8 and will be removed in 3.0 .
*
2015-08-17 17:00:26 -07:00
* @ param string $id The service identifier
* @ param object $service The service instance
* @ param string $scope The scope of the service
*/
public function set ( $id , $service , $scope = self :: SCOPE_CONTAINER );
/**
* 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 );
/**
* 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 );
/**
* Enters the given scope .
*
* @ param string $name
2016-04-20 09:56:34 -07:00
*
* @ deprecated since version 2.8 , to be removed in 3.0 .
2015-08-17 17:00:26 -07:00
*/
public function enterScope ( $name );
/**
* Leaves the current scope , and re - enters the parent scope .
*
* @ param string $name
2016-04-20 09:56:34 -07:00
*
* @ deprecated since version 2.8 , to be removed in 3.0 .
2015-08-17 17:00:26 -07:00
*/
public function leaveScope ( $name );
/**
* Adds a scope to the container .
*
* @ param ScopeInterface $scope
2016-04-20 09:56:34 -07:00
*
* @ deprecated since version 2.8 , to be removed in 3.0 .
2015-08-17 17:00:26 -07:00
*/
public function addScope ( ScopeInterface $scope );
/**
* Whether this container has the given scope .
*
* @ param string $name
*
* @ return bool
2016-04-20 09:56:34 -07:00
*
* @ deprecated since version 2.8 , to be removed in 3.0 .
2015-08-17 17:00:26 -07:00
*/
public function hasScope ( $name );
/**
* Determines whether the given scope is currently active .
*
* It does however not check if the scope actually exists .
*
* @ param string $name
*
* @ return bool
2016-04-20 09:56:34 -07:00
*
* @ deprecated since version 2.8 , to be removed in 3.0 .
2015-08-17 17:00:26 -07:00
*/
public function isScopeActive ( $name );
}