| .. | ||
| Compiler | ||
| Dumper | ||
| Exception | ||
| Extension | ||
| LazyProxy | ||
| Loader | ||
| ParameterBag | ||
| .gitignore | ||
| Alias.php | ||
| CHANGELOG.md | ||
| composer.json | ||
| Container.php | ||
| ContainerAware.php | ||
| ContainerAwareInterface.php | ||
| ContainerAwareTrait.php | ||
| ContainerBuilder.php | ||
| ContainerInterface.php | ||
| Definition.php | ||
| DefinitionDecorator.php | ||
| ExpressionLanguage.php | ||
| ExpressionLanguageProvider.php | ||
| IntrospectableContainerInterface.php | ||
| LICENSE | ||
| Parameter.php | ||
| phpunit.xml.dist | ||
| README.md | ||
| Reference.php | ||
| Scope.php | ||
| ScopeInterface.php | ||
| SimpleXMLElement.php | ||
| TaggedContainerInterface.php | ||
| Variable.php | ||
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