Thinkphp6.0服务系统

本节课我们来学习一下要使用一下系统提供的服务系统。

一.服务系统

1. 服务系统,可以将一个类的对象注册到容器中去,方便调用执行;
2. 服务的执行优先级较高,在执行主体程序前就已经完成依赖注入;
3. 它的作用可以做一些初始化,配置一些参数,扩展插件等等均可;
4. 验证码扩展类就使用了服务系统,我们自己创建一个简单的服务;
5. common 目录下创建一个 Shut.php 类,这个类是被服务的类;
//定义一个属性字段
protected static $name = 'Mr.Lee';
//设置
public static function setName($name)
{
self::$name = $name;
}
//获取
public function run()
{
halt(self::$name.'提醒您,系统已关闭...');
}

6. 使用命令行,生成一个对 Shut.php 服务的服务类 ShutSerice.php
php think make:service ShutService

7. 服务类有两个方法,一个是服务注册 register() ,一个服务启动 boot()
public function register()
{
//绑定到容器,将被服务的类注册到容器中去
$this->app->bind('shut', Shut::class);
}
public function boot()
{
//执行
Shut::setName('Mr.Wang');
}

8. 最后一部,将系统服务配置到全局定义文件里, service.php
return [
\app\service\ShutService::class,
];

9. 最后在任意控制器测试即可,可以容易依赖注入或容器标识执行系统服务;
public function index(Shut $shut)
{
//依赖注入调用
$shut->run();
//容器标识调用
$this->app->shut->run();
return 'index';
}

你可能感兴趣的:(php,php)