主题
项目目录
使用 tp6
开发,可以脱离 app
目录,本项目就是很好的例子,如果你的思维局限在 app
目录下,这将会给你一个很好范例,重新认识 Tp
。而且在开发该项目时,弱化了多应用,取而代之是路由。
目录结构
sh
|-- app
|-- ExceptionHandle.php // 异常捕获
|-- service.php // 核心服务注入
|-- catch // 核心目录
|-- config
|-- catch.php // 配置文件
|-- extend
|-- catcher // 扩展库目录
|-- public
|-- catch-admin // 资源目录
|-- runtime
|-- route
|-- vendor
|-- view
核心目录
该目录是真正的开发目录,当然如果你不喜欢在此开发,也可以在 app
下开发,并没有什么影响。下面来说明目录结构。以permissions
目录为例 (关于在 app
目录下进行多应用的开发, 请查看tp 多应用开发)
sh
|-- catch
|-- permissions
|-- controller
|-- model
|-- database
|-- migrations
|-- seeds
|-- request
|-- module.json
|-- route.php
controller
目录存放控制器文件model
目录存放模型文件database/migrations
目录存放数据库迁移的,就是表结构database/seeds
目录存在数据库默认数据request
目录存在表单请求,验证规则可以写在这里route.php
路由文件,路由规则需要写在里面module.json
保存模块信息
公共库
公共库 extend\cacher
目录, 里面主要存放封装的类库。来看一下目录。
|-- extend
|-- catcher
|-- base
|-- command
|-- event
|-- exceptions
|-- traits
|-- validates
|-- CatchAdmin.php
|-- CatchForm.php
|-- CatchResponse.php
|-- Tree.php
|-- Code.php
|-- Utils.php
|-- CatchQuery.php
|-- CatchAuth.php
接着来说明一下各个目录的作用。
base
目录存在一些基类command
目录存在 console 命令event
目录存在事件exceptions
目录存放自定义异常类exceptions
目录存放自定义 facade 门面generate
目录存放文件生成功能library
目录存放插件- client Http 客户端
- crontab 定时任务功能
- excel Excel 功能
- rate 接口速率限制
- BackupDatabase 备份数据库
- composer 解析 composer.json 文件
- Compress 打包工具
- Error 定义错误
- FileSystem 文件处理类
- InstallCatchMoudle 模块安装
- PraseClass 解析类
- ProgressBar Cli 模式下的进度条
- ScheduleKernel 定时任务调度器
traits
目录复用类库validates
目录存在自定义的验证器middlewares
目录存在自定义的中间件CatchAdmin.php
获取 catchAdmin 的目录信息CatchForm.php
快速生成表单 (前后端项目无用)CatchResponse.php
响应Tree.php
树结构生成Code.php
集合项目的 codeUtils.php
工具集合CatchQuery.php
替代内置的 Query,可实现自己的一些查询操作CatchAuth.php
认证