This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/DependencyInjection
Fabien Potencier 22c2345cb1 feature #14155 Removed deprecations in DependencyInjection component (dosten)
This PR was squashed before being merged into the 3.0-dev branch (closes #14155).

Discussion
----------

Removed deprecations in DependencyInjection component

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

76ff5a9 Removed deprecations in DependencyInjection component
2015-05-16 15:13:50 +02:00
..
Compiler feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
Dumper feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
Exception [DependencyInjection] fixed ? position in some exception messages (refs #7861) 2013-05-01 06:24:56 +02:00
Extension [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00
LazyProxy made {@inheritdoc} annotations consistent across the board 2014-04-16 09:04:20 +02:00
Loader feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
ParameterBag Merge branch '2.8' 2015-04-24 09:12:41 +02:00
Tests feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
Alias.php Docblock fixes 2014-11-30 13:33:44 +00:00
CHANGELOG.md [DependencyInjection] deprecated synchronized services 2015-01-09 18:43:28 +01:00
composer.json Merge branch '2.8' 2015-05-12 17:48:43 +02:00
Container.php feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
ContainerAware.php [DependencyInjection] made ContainerAware class abstract. 2012-05-30 09:01:58 +02:00
ContainerAwareInterface.php [FramworkBundle] fix phpdoc of commands 2013-03-07 14:36:36 +01:00
ContainerAwareTrait.php Remove executable bit on PHP file 2013-11-19 14:48:58 +01:00
ContainerBuilder.php feature #14155 Removed deprecations in DependencyInjection component (dosten) 2015-05-16 15:13:50 +02:00
ContainerInterface.php ContainerInterface: unused exception dropped 2015-05-11 14:02:11 +02:00
Definition.php Removed deprecations in DependencyInjection component 2015-05-16 15:12:51 +02:00
DefinitionDecorator.php Removed deprecations in DependencyInjection component 2015-05-16 15:12:51 +02:00
ExpressionLanguage.php Fixed minor typo - override 2015-01-03 21:58:03 +01:00
ExpressionLanguageProvider.php [DependencyInjection] added support for custom expression language functions 2014-09-25 19:08:38 +02:00
IntrospectableContainerInterface.php [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
Parameter.php [DependencyInjection] tagged the public @api 2011-07-20 10:50:27 +02:00
phpunit.xml.dist [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
README.md Merge branch '2.3' into 2.6 2015-02-11 08:12:14 +01:00
Reference.php Merge branch '2.3' into 2.5 2014-12-22 17:29:52 +01:00
Scope.php updated license blocks 2012-03-31 18:00:32 -03:00
ScopeInterface.php fixed CS 2012-07-09 14:54:20 +02:00
TaggedContainerInterface.php fixed CS 2012-07-09 14:54:20 +02:00
Variable.php [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00

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