Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
[READ-ONLY] Subtree split of the Symfony DependencyInjection Component -- clone into Symfony/Component/ (master at symfony/symfony)
PHP

Merge branch '2.8'

* 2.8:
  [Locale] Add missing @group legacy annotations
  [Form] Add missing @group legacy annotations
  [Form] Use FQCN form types
  Fix security-acl deps
  Fix typo
  [Security] Removed security-acl from the core
  fixed typos
  Fix doctrine mapping validation type error
  Remove skipping of tests based on ICU data version whenever possible
  Fix the handling of null as locale in the stub intl classes
  do not dump leading backslashes in class names
  fix issue #15377
  Skip ::class constant
  [Config] type specific check for emptiness
  [Form] Deprecated FormTypeInterface::getName() and passing of type instances

Conflicts:
	UPGRADE-2.8.md
	composer.json
	src/Symfony/Bridge/Doctrine/composer.json
	src/Symfony/Bridge/Twig/composer.json
	src/Symfony/Bundle/SecurityBundle/composer.json
	src/Symfony/Component/ClassLoader/ClassMapGenerator.php
	src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
	src/Symfony/Component/Form/Tests/AbstractExtensionTest.php
	src/Symfony/Component/Form/Tests/AbstractLayoutTest.php
	src/Symfony/Component/Form/Tests/SimpleFormTest.php
	src/Symfony/Component/Locale/Tests/LocaleTest.php
	src/Symfony/Component/Locale/Tests/Stub/StubLocaleTest.php
	src/Symfony/Component/Security/Acl/README.md
	src/Symfony/Component/Security/Acl/composer.json
Failed to load latest commit information.
Compiler Merge branch '2.8'
Dumper Merge branch '2.8'
Exception [DependencyInjection] fixed ? position in some exception messages (re…
Extension [2.3] CS And DocBlock Fixes
LazyProxy made {@inheritdoc} annotations consistent across the board
Loader Merge branch '2.8'
ParameterBag Merge branch '2.8'
Tests Merge branch '2.8'
.gitignore Added missing files .gitignore
Alias.php Docblock fixes
CHANGELOG.md Implement resettable containers
Container.php [DependencyInjection] Add initialized() to the ContainerInterface
ContainerAware.php [DependencyInjection] made ContainerAware class abstract.
ContainerAwareInterface.php [FramworkBundle] fix phpdoc of commands
ContainerAwareTrait.php Remove executable bit on PHP file
ContainerBuilder.php Merge branch '2.8'
ContainerInterface.php [DependencyInjection] Add initialized() to the ContainerInterface
Definition.php Merge branch '2.8'
DefinitionDecorator.php Merge branch '2.8'
ExpressionLanguage.php Fixed minor typo - override
ExpressionLanguageProvider.php [DependencyInjection] added support for custom expression language fu…
IntrospectableContainerInterface.php [DependencyInjection] Add initialized() to the ContainerInterface
LICENSE Updated copyright to 2015
Parameter.php [DependencyInjection] tagged the public @api
README.md Merge branch '2.3' into 2.6
Reference.php Add "shared" flag and deprecate scopes concept
ResettableContainerInterface.php Implement resettable containers
Scope.php Add "shared" flag and deprecate scopes concept
ScopeInterface.php Add "shared" flag and deprecate scopes concept
TaggedContainerInterface.php fixed CS
Variable.php [2.3] CS And DocBlock Fixes
composer.json Merge branch '2.8'
phpunit.xml.dist [PhpUnitBridge] new bridge for testing with PHPUnit

README.md

DependencyInjection Component

DependencyInjection manages your services via a robust and flexible Dependency Injection Container.

Here is a simple example that shows how to register services and parameters:

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

$sc = new ContainerBuilder();
$sc
    ->register('foo', '%foo.class%')
    ->addArgument(new Reference('bar'))
;
$sc->setParameter('foo.class', 'Foo');

$sc->get('foo');

Method Calls (Setter Injection):

$sc = new ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->addMethodCall('setFoo', array(new Reference('foo')))
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

Factory Class:

If your service is retrieved by calling a static method:

$sc = new ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->setFactory(array('%bar.class%', 'getInstance'))
    ->addArgument('Aarrg!!!')
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

File Include:

For some services, especially those that are difficult or impossible to autoload, you may need the container to include a file before instantiating your class.

$sc = new ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->setFile('/path/to/file')
    ->addArgument('Aarrg!!!')
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

Resources

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/DependencyInjection/
$ composer install
$ phpunit
Something went wrong with that request. Please try again.