跳到主要内容
版本:2.6.1

项目目录

使用 tp6 开发,可以脱离 app 目录,本项目就是很好的例子,如果你的思维局限在 app 目录下,这将会给你一个很好范例,重新认识 Tp。而且在开发该项目时,弱化了多应用,取而代之是路由。

目录结构

|-- app
|-- ExceptionHandle.php // 异常捕获
|-- service.php // 核心服务注入
|-- catch // 核心目录
|-- config
|-- catch.php // 配置文件
|-- extend
|-- catcher // 扩展库目录
|-- public
|-- catch-admin // 资源目录
|-- runtime
|-- route
|-- vendor
|-- view

核心目录

该目录是真正的开发目录,当然如果你不喜欢在此开发,也可以在 app 下开发,并没有什么影响。下面来说明目录结构。以permissions目录为例 (关于在 app 目录下进行多应用的开发, 请查看tp多应用开发)

|-- 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 集合项目的 code
  • Utils.php 工具集合
  • CatchQuery.php 替代内置的 Query,可实现自己的一些查询操作
  • CatchAuth.php 认证