Laravel服务容器与测试全面解析
1. Laravel服务容器绑定
在Laravel中,服务容器的核心目标是便于将特定字符串名称解析为具体实例。这些字符串名称可以是类或接口的完全限定名称,也可以是像 log 这样的快捷方式。
1.1 基本绑定
通过传递闭包来告诉容器如何解析绑定键的实例。例如:
$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 () {
超级会员免费看
订阅专栏 解锁全文
1015

被折叠的 条评论
为什么被折叠?



