官方定义:系统服务的概念是指在执行框架的某些组件或者功能的时候需要依赖的一些基础服务,服务类通常可以继承系统的think\Service类,但并不强制(如果继承think\Service的话可以直接调用this->app获取应用实例)。

开始案例

1、使用命令生成一个服务类

php think make:service  TestService

默认生成的服务类会继承系统的think\Service,并且自动生成了系统服务类最常用的两个空方法:register和boot方法。

  • register方法(注册服务)通常用于注册系统服务,也就是将服务绑定到容器中

  • boot 方法(执行服务)是在所有的系统服务注册完成之后调用的,用于定义启动某个系统服务之前需要做的操作

2、编辑TestService

// 对默认生成的TestService编辑为如下代码
<?php
declare (strict_types = 1);namespace app\service;class TestService extends \think\Service
{/*** 注册服务* 通常用于注册系统服务,也就是将服务绑定到容器中* @return mixed*/public function register(){$this->app()->bind('my_session', \think\Session::class); // 绑定一个Session类到my_session}/*** 执行服务* 是在所有的系统服务注册完成之后调用的,用于定义启动某个系统服务之前需要做的操作* @return mixed*/public function boot(){echo '在执行完所有的系统服务注册完成之后会调用我,输出本行语句';}
}

3、注册服务到你的应用实例中

可以在应用的全局公共文件service.php中定义需要注册的系统服务,系统会自动完成注册以及启动。例如:


4、控制器使用

<?php
namespace app\index\controller;
class Test
{public function myservice(){$session = app('my_session');$session->set('name','zhangsan');$name = $session->get('name');dump($name);}
}


5、浏览器输出结果

参考资料

  • TP6手册之服务
  • appleคิดถึง的博客’TP6 服务‘

TP6手册理解之架构·服务相关推荐

  1. TP6手册理解之架构·事件

    官方定义: 新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者. 事件相比较中间件的优势是事件比中间件更加精准定位 ...

  2. 每日一题:讲一讲你理解的微服务架构?

    点击上方 ,选择 设为星标 优质文章,及时送达 原文来自 GitHub 开源社区 Doocs,欢迎 Star 此项目,如果你有独到的见解,同样可以参与贡献此项目. 面试题 讲一讲你理解的微服务架构? ...

  3. [转载] 理解RESTful架构

    原文: http://www.ruanyifeng.com/blog/2011/09/restful.html 理解RESTful架构 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意 ...

  4. [转] 理解RESTful架构

    FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件 ...

  5. 理解RESTful架构

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  6. 理解RESTful架构【转】

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  7. 转: 理解RESTful架构

    转自: http://www.ruanyifeng.com/blog/2011/09/restful.html 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意识到,网站即软件,而且是 ...

  8. 云端研发新基建:Serverless与持续架构服务落地实践

    在<我心中的云时代原生开发环境>这篇文章中,我们探讨过云厂商的愿景,云计算的趋势与现状以及研发团队的架构服务诉求等背景.今天,我想结合我们打造的云开发平台(Cloud Workbench) ...

  9. 阿里道延:我对技术架构的理解与架构师角色的思考

    我叫道延, 2014 年加入阿里,在阿里通信工作了近两年.2016 年年底加入业务平台团队,当时 Leader 找我的第一件事就是要解决大促的问题,第二件事就是解决安全生产的问题. 我带着这个命题进入 ...

最新文章

  1. 用 Qt 给嵌入式Linux加个桌面
  2. 0004python中的map,reduce,lambda,filter
  3. spring框架 AOP核心详解
  4. RuntimeError: Model class cmdb.models.UserInfo doesn't declare an explicit app_label
  5. Git 存储原理及相关实现
  6. 【Microsoft Azure学习之旅】测试消息队列(Service Bus Queue)是否会丢消息
  7. 关于老师给的数据集,链接1
  8. 中国首个 SaaS 模式的云告警平台 iOS 版 APP 上线
  9. git revert 回滚代码至上一版本
  10. excel的VBA编程环境VBE更换错误字体后设置闪退
  11. 隐藏隧道通信:Socks 隧道
  12. 由旋转矩阵反算旋转角度
  13. 层间距离对ct图像的影响_CT图像影响因素
  14. 小米无线路由器服务器用户名和密码忘了,小米路由器管理密码忘记了怎么办?...
  15. android手机截屏代码,Android手机截屏代码
  16. 废旧闲置的笔记本除了电脑回收,这两招也很实用!
  17. 石川:异象、因子和多因子模型
  18. java计算机毕业设计游泳馆信息管理系统源程序+mysql+系统+lw文档+远程调试
  19. 360网站卫士php-dos,360doskill.php
  20. 国庆假期看了一系列图像分割Unet、DeepLabv3+改进期刊论文,总结了一些改进创新的技巧

热门文章

  1. 小程序 banner 的使用
  2. 【Pinia】小菠萝的使用
  3. 2411681-87-1,Thalidomide-O-PEG4-t-butyl ester化学式:C28H38N2O11
  4. 错误解决:There is no screen to be resumed matching
  5. java.lang.IllegalStateException: Already resumed, but proposed with update xxxx
  6. ChatGPT大规模封号...
  7. 咕咕漫画之弹窗破解去除
  8. php数据库查询到数据以表格的形式展现出来
  9. office PPT插件
  10. python 异步io 写excel_python异步IO编程(二)