文章目录
Laravel 6 - 第一章 简介
Laravel 6 - 第二章 项目搭建
Laravel 6 - 第三章 文件夹结构
Laravel 6 - 第四章 生命周期
Laravel 6 - 第五章 控制反转和依赖注入
Laravel 6 - 第六章 服务容器
Laravel 6 - 第七章 服务提供者
Laravel 6 - 第八章 门面
Laravel 6 - 第九章 契约
Laravel 6 - 第十章 路由
Laravel 6 - 第十一章 中间件
Laravel 6 - 第十二章 控制器
Laravel 6 - 第十三章 请求
Laravel 6 - 第十四章 响应
Laravel 6 - 第十五章 验证器
Laravel 6 - 第十六章 Artisan命令
目录
- 文章目录
- 一、服务容器
- 二、使用步骤
- 1.注册服务提供者
- 2.解析服务
- 3.通过构造函数注入服务
- 4.使用门面(Facades)
一、服务容器
在 Laravel 6
中,服务容器
是一个核心特性,用于实现依赖注入并管理应用程序中对象的创建和生命周期。
二、使用步骤
1.注册服务提供者
首先,需要在服务提供者
中注册服务。服务提供者
在 app/Providers
目录下,继承自 Illuminate\Support\ServiceProvider
类。在 register
方法中绑定接口到实现或绑定具体的类到容器。
下面是将 MyInterface
接口绑定到 MyService
的例子:
2.解析服务
服务被绑定到容器后,可以通过 app()
辅助函数或 resolve()
方法来解析它。
接1
中的例子,有三种方法:
use App\Interfaces\MyInterface;// 第一种
$myService = app(MyInterface::class);
// 第二种
$myService = app()->make(MyInterface::class);
// 第三种
$myService = resolve(MyInterface::class);
3.通过构造函数注入服务
服务容器
也支持通过构造函数
注入服务。在类的构造函数
中声明依赖项,Laravel 6
会自动解析并注入
这些依赖项。
接1
中的例子,如下:
4.使用门面(Facades)
门面
允许你以静态方式访问底层类的实例。如:Cache
门面可以方便地访问缓存服务,而无需手动解析。
<?php use Illuminate\Support\Facades\Cache; $value = Cache::get('key');
注:门面
虽然提供了一种更简洁的方式来访问服务,但过度使用可能会导致代码难以测试和维护。建议在使用门面
之前,请先考虑是否真的需要它们,或者考虑是否可以通过其他方式(如:构造函数注入
)来满足需求。