使用 thinkphp 开发网站,在没有 thinkphp6 版本出来以前,常规的开发模式都是使用它自带的多应用开发方式来进行项目开发。

多应用开发的一个好处就是开发方便和快速,只需要在thinkphp规定的app目录建立一个目录,比如 admin 目录,然后在其内建立一个 controller 目录就可以开始一个项目的基本开发了。

然而这样开发只适合基于它本身的目录进行开发,如果想要把项目做成一个包来开发和发布,这样的方式明显不行。

而这次,thinkphp6 引入了 Service 的概念,增加了项目转移到包开发的可能性。

Service 的使用需要继承 \think\Service ,同时 Service 默认的 registerboot 这两个方法是非必须的,就是说可以不用添加也是可以的。

但是,我们使用 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 使用 thinkphp6Service 模式加单应用开发而成,避开了 thinkphp6 多应用下 url 出现的一些问题,对用户端的 url 更加友好。

laket-admin项目的截图

©著作权归作者所有:来自51CTO博客作者爱看雨的猫的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 6个常用的Java开发技巧,快收藏吧!
  2. 一线架构师的一些项目管理心得
  3. 超完整的Vue入门指导
  4. 如何用Github轻松拉取谷歌容器镜像
  5. 面试必备的Java面试题及毕设项目
  6. 《尚硅谷前端HTML5视频_微信小程序项目实战》视频教程免费下载
  7. 10+年数据库开发工程师带你深入理解MySQL索引
  8. 2021年最全C/C++免费开发工具和教程(全部免费学习)
  9. 培训web前端开发无法胜任工作怎么办?

随机推荐

  1. 【Android】安卓六大布局基本了解
  2. Android™ 2.1 android.R.drawable Icon
  3. Android(安卓)Studio开发环境的搭建与And
  4. Android 源码网站
  5. android 4.0 HttpURLConnection. getInpu
  6. 第一章:hello,Android
  7. android api文档在线
  8. understanding android build layer · D
  9. Android布局文件中的属性含义
  10. Android Treble 简介