Skip to content

基于tp6封装的基础脚手架,开箱即用

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.txt
Notifications You must be signed in to change notification settings

ltxlong/tp6_base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于ThinkPHP 6.0

===========================================================

分层:

controller

model

view

service

dao

在MVC的基础上扩展了service和dao层

service层:

服务层,或者称为逻辑层

写逻辑的地方,不和模型直接接触

dao层:

数据操作层,和模型直接接触

有了dao层,model层就不操作数据了

至于第三方扩展的服务类,放到common文件夹的service文件夹里

controller->service->dao->model

============================================================

关于类的实例化:

全部通过new static()静态方法实例化

即:

类名::instance()

instance()是静态方法,通过new static()实例化,一般不用单例

并且为了写法统一,私有化构造函数类防止new

也可以结合构造函数来传参,当然构造函数还是私有的

这样的实例化更加优雅,至于依赖注入,因为类一旦多了就不好

所以尽量不用依赖注入,就用这种方式

这种方式不用写多一层注释就可以被IDE识别跳转

dao、model、service、validate的文件只要继承了相应的base类(common/base目录里),

就可以通过类名::instance()类实例化

至于自定义异常类,不用new static()的方式,还是用new类实例化

至于工具类,全部方法都是静态的,就不用实例化了

为什么不用facade?用facade的话,ide跳转不了,并且也没提示

==============================================================

controller文件有后缀:Controller

service文件有后缀:Service

dao文件有后缀:Dao

model文件没有后缀!(一定不能有,会报错,写法也不好写)

trait文件有后缀:Trait

middleware文件有后缀:Middleware

job文件有后缀:Job

exception文件有后缀:Exception

validate文件有后缀:Validate

listener文件有后缀:Listener

About

基于tp6封装的基础脚手架,开箱即用

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published