thinkphp6的Service的简明使用介绍
使用 thinkphp
开发网站,在没有 thinkphp6
版本出来以前,常规的开发模式都是使用它自带的多应用开发方式来进行项目开发。
多应用开发的一个好处就是开发方便和快速,只需要在thinkphp规定的app目录建立一个目录,比如 admin 目录,然后在其内建立一个 controller 目录就可以开始一个项目的基本开发了。
然而这样开发只适合基于它本身的目录进行开发,如果想要把项目做成一个包来开发和发布,这样的方式明显不行。
而这次,thinkphp6
引入了 Service
的概念,增加了项目转移到包开发的可能性。
Service
的使用需要继承 \think\Service
,同时 Service
默认的 register
和 boot
这两个方法是非必须的,就是说可以不用添加也是可以的。
但是,我们使用 Service
就是为了在项目启动前添加自己的配置和注册一些自己的东西,所以这两个方法对项目开发来说,都利用起来是最好的方法。
register的使用
register
的加载要先于 boot
方法,也同时在系统里属于提前注册一些具体的配置及绑定类,所以在具体的项目开发中,也是推荐只做一些项目的配置。
Service
的引入会根据 thinkphp6
生成的 Services.php
缓存顺序进行加载,所以在使用过程中需要注意当前的 Service
在缓存中属于哪个位置,防止在注册配置时候出现配置加载时出现不可知的问题。
boot 的使用
boot
通常是在 register
注册完成后进行加载,boot
方法里推荐做一些对 register 注册完成后的信息的补充处理。
thinkphp6
由于在 boot
前已做了系统配置的初始化操作,所以在这里处理一些数据库操作也是没有问题的。
Service 的其他方法
loadRoutesFrom
:导入路由,传入数据为匿名函数
registerRoutes
:功能于 loadRoutesFrom 一样
commands
:导入脚本命令,传入数据为数组或者单个脚本
使用 Service 的场景
如果你想要把一个项目独立成一个包进行发布或者为 thinkphp6
提供扩展包。
如果只是单纯的想做一个 app
项目,Service
估计不太适合你。
最后,Service
的具体实践有没有什么好的项目推荐啊,那当然有的,这里隆重推荐一个完全使用 Service
开发的项目:
laket-admin
:https://github.com/deatil/laket-admin
laket-admin
使用 thinkphp6
的 Service
模式加单应用
开发而成,避开了 thinkphp6
多应用下 url
出现的一些问题,对用户端的 url
更加友好。
laket-admin项目的截图
©著作权归作者所有:来自51CTO博客作者爱看雨的猫的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 6个常用的Java开发技巧,快收藏吧!
- 一线架构师的一些项目管理心得
- 超完整的Vue入门指导
- 如何用Github轻松拉取谷歌容器镜像
- 面试必备的Java面试题及毕设项目
- 《尚硅谷前端HTML5视频_微信小程序项目实战》视频教程免费下载
- 10+年数据库开发工程师带你深入理解MySQL索引
- 2021年最全C/C++免费开发工具和教程(全部免费学习)
- 培训web前端开发无法胜任工作怎么办?