Julio Montoya 321ce65f18 Updating vendors | há 11 anos atrás | |
---|---|---|
.. | ||
Compiler | há 11 anos atrás | |
Dumper | há 11 anos atrás | |
Exception | há 11 anos atrás | |
Extension | há 11 anos atrás | |
LazyProxy | há 11 anos atrás | |
Loader | há 11 anos atrás | |
ParameterBag | há 11 anos atrás | |
Tests | há 11 anos atrás | |
Alias.php | há 12 anos atrás | |
CHANGELOG.md | há 12 anos atrás | |
Container.php | há 11 anos atrás | |
ContainerAware.php | há 12 anos atrás | |
ContainerAwareInterface.php | há 12 anos atrás | |
ContainerBuilder.php | há 11 anos atrás | |
ContainerInterface.php | há 12 anos atrás | |
Definition.php | há 11 anos atrás | |
DefinitionDecorator.php | há 11 anos atrás | |
IntrospectableContainerInterface.php | há 12 anos atrás | |
LICENSE | há 12 anos atrás | |
Parameter.php | há 12 anos atrás | |
README.md | há 12 anos atrás | |
Reference.php | há 12 anos atrás | |
Scope.php | há 12 anos atrás | |
ScopeInterface.php | há 12 anos atrás | |
SimpleXMLElement.php | há 12 anos atrás | |
TaggedContainerInterface.php | há 12 anos atrás | |
Variable.php | há 12 anos atrás | |
composer.json | há 11 anos atrás | |
phpunit.xml.dist | há 12 anos atrás |
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%')
->setFactoryClass('%bar.class%')
->setFactoryMethod('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');
You can run the unit tests with the following command:
$ cd path/to/Symfony/Component/DependencyInjection/
$ composer.phar install --dev
$ phpunit