Je lisais http://symfony.com/doc/master/components/dependency_injection/introduction.html et j'ai fini par me confondre plus que de répondre aux questions. Je veux utiliser un DI dans mon projet afin que je puisse faire des tests appropriés et toutes les autres choses merveilleuses qui viennent avec DI.Petit peu confondu avec l'injection de dépendance
Cependant je suis en train de lire ceci et tout cela fait sens jusqu'à ce que http://symfony.com/doc/master/components/dependency_injection/introduction.html#avoiding-your-code-becoming-dependent-on-the-container
Comment votre code ne dépend du récipient, n'est pas comment vous y accéder?
Supposons que vous avez une classe avec foo et une classe avec bar
class Bar {
public function bar() { return 'hello world'; }
}
class Foo {
public function __construct(\Bar $bar) { $this->bar = $bar; };
public function foo() { return $this->bar->bar(); }
}
Donc, vous ajouteriez la dépendance de Bar Foo par
use Symfony\Component\DependencyInjection\ContainerBuilder;
$container = new ContainerBuilder();
$container->register('foo', 'Foo')->addArgument(new Reference('Bar'));
Alors, vous voulez utiliser Foo (imprimer bonjour monde) vous feriez quelque chose comme
class Test {
public function printHello($foo) {
$foo->foo();
}
}
$test = new Test();
$test->printHello($container->get('foo'));
Ou quelque chose comme ça. Mais ce document semble dire ne pas utiliser $ container-> get? Sauf si j'ai tort.
Ahh! Cela a du sens maintenant. – Steven