ContainerBuilder
class ContainerBuilder extends Container implements TaggedContainerInterface
ContainerBuilder is a DI container that provides an API to easily describe services.
Methods
__construct(ParameterBagInterface $parameterBag = null) | ||
compile() Compiles the container. | ||
bool | isFrozen() Returns true if the container parameter bag are frozen. | from Container |
ParameterBagInterface | getParameterBag() Gets the service container parameter bag. | from Container |
mixed | getParameter(string $name) Gets a parameter. | from Container |
bool | hasParameter(string $name) Checks if a parameter exists. | from Container |
setParameter(string $name, mixed $value) Sets a parameter. | from Container | |
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 = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) Gets a service. | |
bool | initialized(string $id) Returns true if the given service has actually been initialized. | from Container |
reset() Resets shared services from the container. | from Container | |
array | getServiceIds() Gets all service ids. | |
enterScope(string $name) deprecated This is called when you enter a scope. | from Container | |
leaveScope(string $name) deprecated This is called to leave the current scope, and move back to the parent scope. | from Container | |
addScope(ScopeInterface $scope) deprecated Adds a scope to the container. | from Container | |
bool | hasScope(string $name) deprecated Returns whether this container has a certain scope. | from Container |
bool | isScopeActive(string $name) deprecated Returns whether this scope is currently active. | from Container |
static string | camelize(string $id) Camelizes a string. | from Container |
static string | underscore(string $id) A string to underscore. | from Container |
setResourceTracking(bool $track) Sets the track resources flag. | ||
bool | isTrackingResources() Checks if resources are tracked. | |
setProxyInstantiator(InstantiatorInterface $proxyInstantiator) Sets the instantiator to be used when fetching proxies. | ||
registerExtension(ExtensionInterface $extension) | ||
ExtensionInterface | getExtension(string $name) Returns an extension by alias or namespace. | |
ExtensionInterface[] | getExtensions() Returns all registered extensions. | |
bool | hasExtension(string $name) Checks if we have an extension. | |
ResourceInterface[] | getResources() Returns an array of resources loaded to build this configuration. | |
$this | addResource(ResourceInterface $resource) | |
$this | setResources(array $resources) Sets the resources for this configuration. | |
$this | addObjectResource(object $object) Adds the object class hierarchy as resources. | |
$this | addClassResource(ReflectionClass $class) Adds the given class hierarchy as resources. | |
$this | loadFromExtension(string $extension, array $values = array()) Loads the configuration for an extension. | |
$this | addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION) Adds a compiler pass. | |
PassConfig | getCompilerPassConfig() Returns the compiler pass config which can then be modified. | |
Compiler | getCompiler() Returns the compiler. | |
array | getScopes($triggerDeprecationError = true) deprecated Returns all Scopes. | |
array | getScopeChildren($triggerDeprecationError = true) deprecated Returns all Scope children. | |
removeDefinition(string $id) Removes a service definition. | ||
merge(ContainerBuilder $container) Merges a ContainerBuilder with the current ContainerBuilder configuration. | ||
array | getExtensionConfig(string $name) Returns the configuration array for the given extension. | |
prependExtensionConfig(string $name, array $config) Prepends a config array to the configs of the given extension. | ||
addAliases(array $aliases) Adds the service aliases. | ||
setAliases(array $aliases) Sets the service aliases. | ||
setAlias(string $alias, string|Alias $id) Sets an alias for an existing service. | ||
removeAlias(string $alias) Removes an alias. | ||
bool | hasAlias(string $id) Returns true if an alias exists under the given identifier. | |
Alias[] | getAliases() Gets all defined aliases. | |
Alias | getAlias(string $id) Gets an alias. | |
Definition | register($id, $class = null) Registers a service definition. | |
addDefinitions(array $definitions) Adds the service definitions. | ||
setDefinitions(array $definitions) Sets the service definitions. | ||
Definition[] | getDefinitions() Gets all service definitions. | |
Definition | setDefinition(string $id, Definition $definition) Sets a service definition. | |
bool | hasDefinition(string $id) Returns true if a service definition exists under the given identifier. | |
Definition | getDefinition(string $id) Gets a service definition. | |
Definition | findDefinition(string $id) Gets a service definition by id or alias. | |
object | createService(Definition $definition, string $id, bool $tryProxy = true) Creates a service for a service definition. | |
mixed | resolveServices(mixed $value) Replaces service references by the real service instance and evaluates expressions. | |
array | findTaggedServiceIds(string $name) Returns service ids for a given tag. | |
array | findTags() Returns all tags the defined services use. | |
string[] | findUnusedTags() Returns all tags not queried by findTaggedServiceIds. | |
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) | ||
ExpressionFunctionProviderInterface[] | getExpressionLanguageProviders() | |
static array | getServiceConditionals(mixed $value) Returns the Service Conditionals. |
Details
__construct(ParameterBagInterface $parameterBag = null)
Parameters
ParameterBagInterface | $parameterBag |
compile()
Compiles the container.
This method passes the container to compiler passes whose job is to manipulate and optimize the container.
The main compiler passes roughly do four things:
- The extension configurations are merged;
- Parameter values are resolved;
- The parameter bag is frozen;
- Extension loading is disabled.
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.
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
BadMethodCallException | When this ContainerBuilder is frozen |
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 = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE)
Gets a service.
Parameters
string | $id | The service identifier |
int | $invalidBehavior | The behavior when the service does not exist |
Return Value
object | The associated service |
Exceptions
InvalidArgumentException | when no definitions are available |
ServiceCircularReferenceException | When a circular reference is detected |
ServiceNotFoundException | When the service is not defined |
Exception |
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 |
setResourceTracking(bool $track)
Sets the track resources flag.
If you are not using the loaders and therefore don't want to depend on the Config component, set this flag to false.
Parameters
bool | $track | true if you want to track resources, false otherwise |
bool isTrackingResources()
Checks if resources are tracked.
Return Value
bool | true if resources are tracked, false otherwise |
setProxyInstantiator(InstantiatorInterface $proxyInstantiator)
Sets the instantiator to be used when fetching proxies.
Parameters
InstantiatorInterface | $proxyInstantiator |
registerExtension(ExtensionInterface $extension)
Parameters
ExtensionInterface | $extension |
ExtensionInterface getExtension(string $name)
Returns an extension by alias or namespace.
Parameters
string | $name | An alias or a namespace |
Return Value
ExtensionInterface | An extension instance |
Exceptions
LogicException | if the extension is not registered |
ExtensionInterface[] getExtensions()
Returns all registered extensions.
Return Value
ExtensionInterface[] | An array of ExtensionInterface |
bool hasExtension(string $name)
Checks if we have an extension.
Parameters
string | $name | The name of the extension |
Return Value
bool | If the extension exists |
ResourceInterface[] getResources()
Returns an array of resources loaded to build this configuration.
Return Value
ResourceInterface[] | An array of resources |
$this addResource(ResourceInterface $resource)
Parameters
ResourceInterface | $resource |
Return Value
$this |
$this setResources(array $resources)
Sets the resources for this configuration.
Parameters
array | $resources | An array of resources |
Return Value
$this |
$this addObjectResource(object $object)
Adds the object class hierarchy as resources.
Parameters
object | $object | An object instance |
Return Value
$this |
$this addClassResource(ReflectionClass $class)
Adds the given class hierarchy as resources.
Parameters
ReflectionClass | $class |
Return Value
$this |
$this loadFromExtension(string $extension, array $values = array())
Loads the configuration for an extension.
Parameters
string | $extension | The extension alias or namespace |
array | $values | An array of values that customizes the extension |
Return Value
$this |
Exceptions
BadMethodCallException | When this ContainerBuilder is frozen |
LogicException | if the container is frozen |
$this addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
Adds a compiler pass.
Parameters
CompilerPassInterface | $pass | A compiler pass |
string | $type | The type of compiler pass |
Return Value
$this |
PassConfig getCompilerPassConfig()
Returns the compiler pass config which can then be modified.
Return Value
PassConfig | The compiler pass config |
Compiler getCompiler()
Returns the compiler.
Return Value
Compiler | The compiler |
array getScopes($triggerDeprecationError = true) deprecated
deprecated
Returns all Scopes.
Parameters
$triggerDeprecationError |
Return Value
array | An array of scopes |
array getScopeChildren($triggerDeprecationError = true) deprecated
deprecated
Returns all Scope children.
Parameters
$triggerDeprecationError |
Return Value
array | An array of scope children |
removeDefinition(string $id)
Removes a service definition.
Parameters
string | $id | The service identifier |
merge(ContainerBuilder $container)
Merges a ContainerBuilder with the current ContainerBuilder configuration.
Service definitions overrides the current defined ones.
But for parameters, they are overridden by the current ones. It allows the parameters passed to the container constructor to have precedence over the loaded ones.
$container = new ContainerBuilder(array('foo' => 'bar')); $loader = new LoaderXXX($container); $loader->load('resource_name'); $container->register('foo', new stdClass());
In the above example, even if the loaded resource defines a foo parameter, the value will still be 'bar' as defined in the ContainerBuilder constructor.
Parameters
ContainerBuilder | $container |
Exceptions
BadMethodCallException | When this ContainerBuilder is frozen |
array getExtensionConfig(string $name)
Returns the configuration array for the given extension.
Parameters
string | $name | The name of the extension |
Return Value
array | An array of configuration |
prependExtensionConfig(string $name, array $config)
Prepends a config array to the configs of the given extension.
Parameters
string | $name | The name of the extension |
array | $config | The config to set |
addAliases(array $aliases)
Adds the service aliases.
Parameters
array | $aliases |
setAliases(array $aliases)
Sets the service aliases.
Parameters
array | $aliases |
setAlias(string $alias, string|Alias $id)
Sets an alias for an existing service.
Parameters
string | $alias | The alias to create |
string|Alias | $id | The service to alias |
Exceptions
InvalidArgumentException | if the id is not a string or an Alias |
InvalidArgumentException | if the alias is for itself |
removeAlias(string $alias)
Removes an alias.
Parameters
string | $alias | The alias to remove |
bool hasAlias(string $id)
Returns true if an alias exists under the given identifier.
Parameters
string | $id | The service identifier |
Return Value
bool | true if the alias exists, false otherwise |
Alias[] getAliases()
Gets all defined aliases.
Return Value
Alias[] | An array of aliases |
Alias getAlias(string $id)
Gets an alias.
Parameters
string | $id | The service identifier |
Return Value
Alias | An Alias instance |
Exceptions
InvalidArgumentException | if the alias does not exist |
Definition register($id, $class = null)
Registers a service definition.
This methods allows for simple registration of service definition with a fluid interface.
Parameters
$id | ||
$class |
Return Value
Definition | A Definition instance |
addDefinitions(array $definitions)
Adds the service definitions.
Parameters
array | $definitions | An array of service definitions |
setDefinitions(array $definitions)
Sets the service definitions.
Parameters
array | $definitions | An array of service definitions |
Definition[] getDefinitions()
Gets all service definitions.
Return Value
Definition[] | An array of Definition instances |
Definition setDefinition(string $id, Definition $definition)
Sets a service definition.
Parameters
string | $id | The service identifier |
Definition | $definition | A Definition instance |
Return Value
Definition | the service definition |
Exceptions
BadMethodCallException | When this ContainerBuilder is frozen |
bool hasDefinition(string $id)
Returns true if a service definition exists under the given identifier.
Parameters
string | $id | The service identifier |
Return Value
bool | true if the service definition exists, false otherwise |
Definition getDefinition(string $id)
Gets a service definition.
Parameters
string | $id | The service identifier |
Return Value
Definition | A Definition instance |
Exceptions
ServiceNotFoundException | if the service definition does not exist |
Definition findDefinition(string $id)
Gets a service definition by id or alias.
The method "unaliases" recursively to return a Definition instance.
Parameters
string | $id | The service identifier or alias |
Return Value
Definition | A Definition instance |
Exceptions
ServiceNotFoundException | if the service definition does not exist |
object createService(Definition $definition, string $id, bool $tryProxy = true)
Creates a service for a service definition.
Parameters
Definition | $definition | A service definition instance |
string | $id | The service identifier |
bool | $tryProxy | Whether to try proxying the service with a lazy proxy |
Return Value
object | The service described by the service definition |
Exceptions
RuntimeException | When the scope is inactive |
RuntimeException | When the factory definition is incomplete |
RuntimeException | When the service is a synthetic service |
InvalidArgumentException | When configure callable is not callable |
mixed resolveServices(mixed $value)
Replaces service references by the real service instance and evaluates expressions.
Parameters
mixed | $value | A value |
Return Value
mixed | The same value with all service references replaced by the real service instances and all expressions evaluated |
array findTaggedServiceIds(string $name)
Returns service ids for a given tag.
Example:
$container->register('foo')->addTag('my.tag', array('hello' => 'world'));
$serviceIds = $container->findTaggedServiceIds('my.tag'); foreach ($serviceIds as $serviceId => $tags) { foreach ($tags as $tag) { echo $tag['hello']; } }
Parameters
string | $name | The tag name |
Return Value
array | An array of tags |
array findTags()
Returns all tags the defined services use.
Return Value
array | An array of tags |
string[] findUnusedTags()
Returns all tags not queried by findTaggedServiceIds.
Return Value
string[] | An array of tags |
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
Parameters
ExpressionFunctionProviderInterface | $provider |
ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()
Return Value
ExpressionFunctionProviderInterface[] |
static array getServiceConditionals(mixed $value)
Returns the Service Conditionals.
Parameters
mixed | $value | An array of conditionals to return |
Return Value
array | An array of Service conditionals |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/DependencyInjection/ContainerBuilder.html