加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 在Laravel 5中实例化依赖项,这是一种好方法

发布时间:2020-12-14 19:39:09 所属栏目:大数据 来源:网络整理
导读:如果我键入提示所需的类/接口,Laravel 5提供自动依赖解析.但他们应该如何实例化呢?例: public function __construct(Dependency $dependency) { $this-dependency = $dependency;} 然后,在另一种方法中,我想创建两个实例,如下所示: $one = new Dependency
如果我键入提示所需的类/接口,Laravel 5提供自动依赖解析.但他们应该如何实例化呢?例:

public function __construct(Dependency $dependency) {
    $this->dependency = $dependency;
}

然后,在另一种方法中,我想创建两个实例,如下所示:

$one = new Dependency(1);
$two = new Dependency(2);

什么是最灵活,最友好的测试方式?

解决方法

请原谅我可笑的笑话,但这取决于.

看起来你已经误解了依赖性解决了一点点.
在您的示例中,属性“dependency”allready包含一个实例化对象.如果在另一个方法中需要两个不同的实例,则可以在那里实例化它们,注入容器或使用工厂.这取决于您的需求.

laravel依赖解析的简短介绍

lavevel中的自动依赖性解析由service container提供,它用于传递(已经实现的)实例化对象.必须将已解析的对象绑定到服务容器.最好的方法是通过service providers.在服务提供商的注册方法中,您可以进行绑定

$this->app->bind('Dependency',function ($app) {
    return new Dependency();
});

在此示例中,容器将在每次调用时返回一个新实例.

如果每次绑定单个实例时都需要相同的实例

$this->app->singleton('Dependency',function ($app) {
    return new Dependency();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读