Laravel Container Dependencies自动解析

时间:2017-07-05 09:08:41

标签: php laravel laravel-5 laravel-5.4 ioc-container

何时需要在容器中显式注册类?

假设我的课程取决于一些标准的Laravel组件:

<?php

class Dump
{
    public function __construct(
        \Illuminate\Contracts\Config\Repository $config,
        \Illuminate\Contracts\Filesystem\Filesystem $filesystem
    ) {
    }
}

通常我会在服务提供商中这样做:

$this->app->singleton(Dump::class, function (Application $app) {
    return new Dump($app->make('config'), $app->make('files'));
});

然而,我发现这是多余的。如果我做resolve(Dump::class),Laravel会自行解决并注入这些组件。我刚刚在集成测试中遇到过这个问题。

如果根据Dump还有其他课程怎么办? Laravel会解析Dump并将其注入依赖的自定义类吗?你能解释它能够/不能自动解决和注入的内容吗?只有标准的地方,如工作/控制器或任何地方?似乎我在理解容器时遗漏了一些东西。

0 个答案:

没有答案