Container
class Container implements IntrospectableContainerInterface, ResettableContainerInterface
Container is a dependency injection container.
It gives access to object instances (services).
Services and parameters are simple key/pair stores.
Parameter and service keys are case insensitive.
A service can also be defined by creating a method named getXXXService(), where XXX is the camelized version of the id:
- request -> getRequestService()
- mysql_session_storage -> getMysqlSessionStorageService()
- symfony.mysql_session_storage -> getSymfony_MysqlSessionStorageService()
The container can have three possible behaviors when a service does not exist:
- EXCEPTIONONINVALID_REFERENCE: Throws an exception (the default)
- NULLONINVALID_REFERENCE: Returns null
- IGNOREONINVALID_REFERENCE: Ignores the wrapping command asking for the reference (for instance, ignore a setter if the service does not exist)
Methods
__construct(ParameterBagInterface $parameterBag = null) | ||
compile() Compiles the container. | ||
bool | isFrozen() Returns true if the container parameter bag are frozen. | |
ParameterBagInterface | getParameterBag() Gets the service container parameter bag. | |
mixed | getParameter(string $name) Gets a parameter. | |
bool | hasParameter(string $name) Checks if a parameter exists. | |
setParameter(string $name, mixed $value) Sets a parameter. | ||
set(string $id, object $service, string $scope = self::SCOPE_CONTAINER) Sets a service. | ||
bool | has(string $id) Returns true if the given service is defined. | |
object | get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE) Gets a service. | |
bool | initialized(string $id) Returns true if the given service has actually been initialized. | |
reset() Resets shared services from the container. | ||
array | getServiceIds() Gets all service ids. | |
enterScope(string $name) deprecated This is called when you enter a scope. | ||
leaveScope(string $name) deprecated This is called to leave the current scope, and move back to the parent scope. | ||
addScope(ScopeInterface $scope) deprecated Adds a scope to the container. | ||
bool | hasScope(string $name) deprecated Returns whether this container has a certain scope. | |
bool | isScopeActive(string $name) deprecated Returns whether this scope is currently active. | |
static string | camelize(string $id) Camelizes a string. | |
static string | underscore(string $id) A string to underscore. |
Details
__construct(ParameterBagInterface $parameterBag = null)
Parameters
ParameterBagInterface | $parameterBag |
compile()
Compiles the container.
This method does two things:
- Parameter values are resolved;
- The parameter bag is frozen.
bool isFrozen()
Returns true if the container parameter bag are frozen.
Return Value
bool | true if the container parameter bag are frozen, false otherwise |
ParameterBagInterface getParameterBag()
Gets the service container parameter bag.
Return Value
ParameterBagInterface | A ParameterBagInterface instance |
mixed getParameter(string $name)
Gets a parameter.
Parameters
string | $name | The parameter name |
Return Value
mixed | The parameter value |
Exceptions
InvalidArgumentException | if the parameter is not defined |
bool hasParameter(string $name)
Checks if a parameter exists.
Parameters
string | $name | The parameter name |
Return Value
bool | The presence of parameter in container |
setParameter(string $name, mixed $value)
Sets a parameter.
Parameters
string | $name | The parameter name |
mixed | $value | The parameter value |
set(string $id, object $service, string $scope = self::SCOPE_CONTAINER)
Sets a service.
Setting a service to null resets the service: has() returns false and get() behaves in the same way as if the service was never created.
Note: The $scope parameter is deprecated since version 2.8 and will be removed in 3.0.
Parameters
string | $id | The service identifier |
object | $service | The service instance |
string | $scope | The scope of the service |
Exceptions
RuntimeException | When trying to set a service in an inactive scope |
InvalidArgumentException | When trying to set a service in the prototype scope |
bool has(string $id)
Returns true if the given service is defined.
Parameters
string | $id | The service identifier |
Return Value
bool | true if the service is defined, false otherwise |
object get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)
Gets a service.
If a service is defined both through a set() method and with a get{$id}Service() method, the former has always precedence.
Parameters
string | $id | The service identifier |
int | $invalidBehavior | The behavior when the service does not exist |
Return Value
object | The associated service |
Exceptions
ServiceCircularReferenceException | When a circular reference is detected |
ServiceNotFoundException | When the service is not defined |
Exception | if an exception has been thrown when the service has been resolved |
See also
Reference |
bool initialized(string $id)
Returns true if the given service has actually been initialized.
Parameters
string | $id |
Return Value
bool | true if the service has been initialized, false otherwise |
reset()
Resets shared services from the container.
The container is not intended to be used again after being reset in a normal workflow. This method is meant as a way to release references for ref-counting. A subsequent call to ContainerInterface::get will recreate a new instance of the shared service.
array getServiceIds()
Gets all service ids.
Return Value
array | An array of all defined service ids |
enterScope(string $name) deprecated
deprecated
This is called when you enter a scope.
Parameters
string | $name |
Exceptions
RuntimeException | When the parent scope is inactive |
InvalidArgumentException | When the scope does not exist |
leaveScope(string $name) deprecated
deprecated
This is called to leave the current scope, and move back to the parent scope.
Parameters
string | $name |
Exceptions
InvalidArgumentException | if the scope is not active |
addScope(ScopeInterface $scope) deprecated
deprecated
Adds a scope to the container.
Parameters
ScopeInterface | $scope |
Exceptions
InvalidArgumentException |
bool hasScope(string $name) deprecated
deprecated
Returns whether this container has a certain scope.
Parameters
string | $name |
Return Value
bool |
bool isScopeActive(string $name) deprecated
deprecated
Returns whether this scope is currently active.
This does not actually check if the passed scope actually exists.
Parameters
string | $name |
Return Value
bool |
static string camelize(string $id)
Camelizes a string.
Parameters
string | $id | A string to camelize |
Return Value
string | The camelized string |
static string underscore(string $id)
A string to underscore.
Parameters
string | $id | The string to underscore |
Return Value
string | The underscored string |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/DependencyInjection/Container.html