class ContainerBuilder extends Container implements TaggedContainerInterface

ContainerBuilder is a DI container that provides an API to easily describe services.

Properties

protected $parameterBag from Container
protected $services from Container
protected $methodMap from Container
protected $aliases from Container
protected $scopes from Container
protected $scopeChildren from Container
protected $scopedServices from Container
protected $scopeStacks from Container
protected $loading from Container

Methods

__construct(ParameterBagInterface $parameterBag = null)

No description

compile()

Compiles the container.

bool
isFrozen()

Returns true if the container parameter bag are frozen.

from Container
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)

No description

getExtension(string $name)

Returns an extension by alias or namespace.

getExtensions()

Returns all registered extensions.

bool
hasExtension(string $name)

Checks if we have an extension.

getResources()

Returns an array of resources loaded to build this configuration.

$this
addResource(ResourceInterface $resource)

No description

$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 = null)

Loads the configuration for an extension.

$this
addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)

Adds a compiler pass.

getCompilerPassConfig()

Returns the compiler pass config which can then be modified.

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.

getAlias(string $id)

Gets an alias.

register($id, $class = null)

Registers a service definition.

addDefinitions(array $definitions)

Adds the service definitions.

setDefinitions(array $definitions)

Sets the service definitions.

getDefinitions()

Gets all service definitions.

setDefinition(string $id, Definition $definition)

Sets a service definition.

bool
hasDefinition(string $id)

Returns true if a service definition exists under the given identifier.

getDefinition(string $id)

Gets a service definition.

findDefinition(string $id)

Gets a service definition by id or alias.

object
createService(Definition $definition, SplObjectStorage $inlinedDefinitions, $id = null, $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.

static array
getServiceConditionals(mixed $value)

Returns the Service Conditionals.

Details

at line 94
__construct(ParameterBagInterface $parameterBag = null)

Parameters

ParameterBagInterface $parameterBag

at line 577
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.

in Container at line 89
bool isFrozen()

Returns true if the container parameter bag are frozen.

Return Value

bool true if the container parameter bag are frozen, false otherwise

in Container at line 99
ParameterBagInterface getParameterBag()

Gets the service container parameter bag.

Return Value

ParameterBagInterface A ParameterBagInterface instance

in Container at line 113
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

in Container at line 125
bool hasParameter(string $name)

Checks if a parameter exists.

Parameters

string $name The parameter name

Return Value

bool The presence of parameter in container

in Container at line 136
setParameter(string $name, mixed $value)

Sets a parameter.

Parameters

string $name The parameter name
mixed $value The parameter value

at line 380
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

at line 420
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

at line 442
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

in Container at line 325
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

in Container at line 345
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.

at line 607
array getServiceIds()

Gets all service ids.

Return Value

array An array of all defined service ids

in Container at line 382
enterScope(string $name) deprecated

deprecated since version 2.8, to be removed in 3.0.

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

in Container at line 434
leaveScope(string $name) deprecated

deprecated since version 2.8, to be removed in 3.0.

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

in Container at line 483
addScope(ScopeInterface $scope) deprecated

deprecated since version 2.8, to be removed in 3.0.

Adds a scope to the container.

Parameters

ScopeInterface $scope

Exceptions

InvalidArgumentException

in Container at line 520
bool hasScope(string $name) deprecated

deprecated since version 2.8, to be removed in 3.0.

Returns whether this container has a certain scope.

Parameters

string $name

Return Value

bool

in Container at line 540
bool isScopeActive(string $name) deprecated

deprecated since version 2.8, to be removed in 3.0.

Returns whether this scope is currently active.

This does not actually check if the passed scope actually exists.

Parameters

string $name

Return Value

bool

in Container at line 554
static string camelize(string $id)

Camelizes a string.

Parameters

string $id A string to camelize

Return Value

string The camelized string

in Container at line 566
static string underscore(string $id)

A string to underscore.

Parameters

string $id The string to underscore

Return Value

string The underscored string

at line 114
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

at line 124
bool isTrackingResources()

Checks if resources are tracked.

Return Value

bool true If resources are tracked, false otherwise

at line 132
setProxyInstantiator(InstantiatorInterface $proxyInstantiator)

Sets the instantiator to be used when fetching proxies.

Parameters

InstantiatorInterface $proxyInstantiator

at line 137
registerExtension(ExtensionInterface $extension)

Parameters

ExtensionInterface $extension

at line 155
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

at line 173
ExtensionInterface[] getExtensions()

Returns all registered extensions.

Return Value

ExtensionInterface[] An array of ExtensionInterface

at line 185
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

at line 195
ResourceInterface[] getResources()

Returns an array of resources loaded to build this configuration.

Return Value

ResourceInterface[] An array of resources

at line 203
$this addResource(ResourceInterface $resource)

Parameters

ResourceInterface $resource

Return Value

$this

at line 221
$this setResources(array $resources)

Sets the resources for this configuration.

Parameters

array $resources An array of resources

Return Value

$this

at line 239
$this addObjectResource(object $object)

Adds the object class hierarchy as resources.

Parameters

object $object An object instance

Return Value

$this

at line 253
$this addClassResource(ReflectionClass $class)

Adds the given class hierarchy as resources.

Parameters

ReflectionClass $class

Return Value

$this

at line 279
$this loadFromExtension(string $extension, array $values = null)

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

at line 304
$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

at line 318
PassConfig getCompilerPassConfig()

Returns the compiler pass config which can then be modified.

Return Value

PassConfig The compiler pass config

at line 328
Compiler getCompiler()

Returns the compiler.

Return Value

Compiler The compiler

at line 344
array getScopes($triggerDeprecationError = true) deprecated

deprecated since version 2.8, to be removed in 3.0.

Returns all Scopes.

Parameters

$triggerDeprecationError

Return Value

array An array of scopes

at line 360
array getScopeChildren($triggerDeprecationError = true) deprecated

deprecated since version 2.8, to be removed in 3.0.

Returns all Scope children.

Parameters

$triggerDeprecationError

Return Value

array An array of scope children

at line 408
removeDefinition(string $id)

Removes a service definition.

Parameters

string $id The service identifier

at line 507
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(new ParameterBag(array('foo' => 'bar')));
$loader = new LoaderXXX($container);
$loader->load('resource_name');
$container->register('foo', '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

at line 539
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

at line 554
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

at line 615
addAliases(array $aliases)

Adds the service aliases.

Parameters

array $aliases

at line 625
setAliases(array $aliases)

Sets the service aliases.

Parameters

array $aliases

at line 640
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

at line 664
removeAlias(string $alias)

Removes an alias.

Parameters

string $alias The alias to remove

at line 676
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

at line 686
Alias[] getAliases()

Gets all defined aliases.

Return Value

Alias[] An array of aliases

at line 700
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

at line 722
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

at line 732
addDefinitions(array $definitions)

Adds the service definitions.

Parameters

array $definitions An array of service definitions

at line 744
setDefinitions(array $definitions)

Sets the service definitions.

Parameters

array $definitions An array of service definitions

at line 755
Definition[] getDefinitions()

Gets all service definitions.

Return Value

Definition[] An array of Definition instances

at line 770
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

at line 790
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

at line 804
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

at line 826
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

at line 853
object createService(Definition $definition, SplObjectStorage $inlinedDefinitions, $id = null, $tryProxy = true)

Creates a service for a service definition.

Parameters

Definition $definition
SplObjectStorage $inlinedDefinitions
$id
$tryProxy

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

at line 975
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

at line 1015
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

at line 1033
array findTags()

Returns all tags the defined services use.

Return Value

array An array of tags

at line 1048
string[] findUnusedTags()

Returns all tags not queried by findTaggedServiceIds.

Return Value

string[] An array of tags

at line 1053
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)

at line 1061
ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()

at line 1073
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