Я не могу найти ответ на этот вопрос...
Если я вставляю контейнер службы, например:
// config.yml
my_listener:
class: MyListener
arguments: [@service_container]
my_service:
class: MyService
// MyListener.php
class MyListener
{
protected $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function myFunction()
{
$my_service = $this->container->get('my_service');
$my_service->doSomething();
}
}
то он работает так же хорошо, как если бы я делал:
// config.yml
my_listener:
class: MyListener
arguments: [@my_service]
my_service:
class: MyService
// MyListener.php
class MyListener
{
protected $my_service;
public function __construct(MyService $my_service)
{
$this->my_service = $my_service;
}
public function myFunction()
{
$this->my_service->doSomething();
}
}
Итак, почему я не должен просто вводить контейнер службы и получать службы от этого внутри моего класса?