20、Laravel 服务容器与测试全解析

Laravel 服务容器与测试全解析

1. Laravel 服务容器

1.1 基本绑定

在 Laravel 中,服务容器的绑定本质上是告诉容器如何解析绑定键的实例。通常可以通过传递闭包来实现绑定,例如:

$this->app->bind(UserMailer::class, function ($app) {
    return new UserMailer(
        $app->make(Mailer::class),
        $app->make(Logger::class),
        $app->make(Slack::class)
    );
});

每次请求该类的新实例时,闭包都会重新运行并返回新的输出。

1.2 单例、别名和实例绑定

  • 单例绑定 :若想缓存绑定闭包的输出,避免每次请求实例时都重新运行闭包,可使用单例模式,通过 $this->app->singleton() 方法实现:
public function register()
{
    $this->app->singleton(Logger::class, function () {
        return new Logger('\log\path\here', 'error');
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值