小编Jar*_*ski的帖子

在Symfony2中,为什么注入服务容器而不是单个服务是个坏主意?

我找不到这个答案......

如果我注入服务容器,如:

// 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后它的工作方式和我做的一样:

// 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

那么为什么我不应该只注入服务容器,并从我的类中获取服务?

dependency-injection symfony

21
推荐指数
3
解决办法
5576
查看次数

如何在phpStorm中自动导入整个PHP文件的命名空间?

如何在PHPStorm中执行NetBeans对"修复使用..."(Ctrl+ Shift+ I)的操作,以便在项目文件中修复FCQN?

我已经找到的是类名Alt+ Enter,但我怎么能为整个文件做?

php ide netbeans namespaces phpstorm

15
推荐指数
1
解决办法
1465
查看次数