2021-04-08 laravel 控制反转

本文介绍了Laravel框架中的控制反转概念,通过示例详细讲解了如何在Laravel中使用依赖注入,包括`bind`、`singleton`和`instance`三种注册方法的区别。`bind`每次调用都会创建新实例,`singleton`确保每次返回相同实例,而`instance`则是直接绑定已实例化的对象。理解这些方法对于优化应用性能和管理对象生命周期至关重要。
摘要由CSDN通过智能技术生成

在任意一个实现了ServiceProvider类中的register中添加以下内容。

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

因为其中的$this->app是继承于Container类的,
那他也是一个容器,通过singleton方法将Dub类绑定在容器中,并设置其名称为 dub

此时想要引用它就可以通过依赖注入的方式直接引用了
如:

public function test(Dbu $dbu)
{
    dd($dbu->print());
}

在laravel的Container类中提供了三种不同的注册方法, 分别是bindinstancesingleton, 下面是他们之间的区别bindinstancesingleton的区别

use Illuminate\Container\Container;

class Dbu extends Container
{
    public function __construct(array $values = [])
    {
        $dbu = $this;
        $this->registerMake($dbu);
    }

    public function registerMake($dbu)
    {
 #      ①
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值