Container (Component\DependencyInjection)
Symfony\Component\DependencyInjection\Container
class Container implements 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 id can contain lowercased letters, digits, underscores, and dots. Underscores are used to separate words, and dots to group services under namespaces:
- request
- mysql_session_storage
- symfony.mysql_session_storage
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) Constructor. | ||
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) 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. | |
static string | camelize(string $id) Camelizes a string. | |
static string | underscore(string $id) A string to underscore. |
Details
public __construct(ParameterBagInterface $parameterBag = null)
Constructor.
public compile()
Compiles the container.
This method does two things:
- Parameter values are resolved;
- The parameter bag is frozen.
public bool isFrozen()
Returns true if the container parameter bag are frozen.
public ParameterBagInterface getParameterBag()
Gets the service container parameter bag.
public mixed getParameter(string $name)
Gets a parameter.
public bool hasParameter(string $name)
Checks if a parameter exists.
public setParameter(string $name, mixed $value)
Sets a parameter.
public set(string $id, object $service)
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.
public bool has(string $id)
Returns true if the given service is defined.
public 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.
public bool initialized(string $id)
Returns true if the given service has actually been initialized.
public 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.
public array getServiceIds()
Gets all service ids.
static public string camelize(string $id)
Camelizes a string.
static public string underscore(string $id)
A string to underscore.
© 2004–2016 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/DependencyInjection/Container.html