目录结构

Testing Is Documentation

tests/Docs/Started/DirectoryDoc.php目录结构 - 图1

QueryPHP 遵循 “约定优于配置” 的原则,主张通过领域驱动设计来构建更可靠的软件。

基本结构

下面是整个应用基本目录结构,系统结构可以自由定义。

  1. .
  2. ├── apis Swagger API 目录
  3. ├── application
  4. ├── admin (后台应用)通用后台 API 接口
  5. ├── app (默认应用)
  6. ├── App 应用层(Application
  7. ├── Domain 领域模型层(Domain Model
  8. └── Entity 实体 (Entity)
  9. └── Event 事件(Event
  10. └── Listener 监听器(Listener
  11. ├── Infra 基础设施层(Infrastructure
  12. └── Provider 服务提供者 (Provider)
  13. └── Repository 仓储 (Repository)
  14. ├── ui 用户界面 User Interface(表现层 Presentation
  15. │-- build 一些脚本
  16. │-- common 公共组件 (结构类 application/app)
  17. │-- database 数据库迁移
  18. ├── migrations 数据库迁移
  19. ├── seeds 填充数据
  20. │-- frontend 基于 Vue2+IView 前端通用权限管理系统
  21. │-- i18n 语言包
  22. ├── zh-CN 中文
  23. ├── zh-TW 台湾繁体
  24. ├── en-US 美国英语
  25. │-- option 配置目录
  26. │-- public 静态资源目录,比如图片、CSS
  27. │-- runtime 运行缓存目录
  28. │-- storage 文件上传目录
  29. │-- tests 单元测试目录
  30. │-- themes 视图文件目录
  31. │-- vendor Composer 第三方库目录
  32. │-- www Web 入口目录
  33. │-- ...
  34. │-- .env 环境变量
  35. │-- .env.phpunit 单元测试环境变量
  36. │-- .php_cs.dist 统一团队风格配置
  37. │-- .travis.yml Travis 持续集成配置
  38. │-- composer.json Composer 配置
  39. │-- leevel 命令行工具集 php leevel
  40. │-- package.json 前端包
  41. │-- phinx.php 数据库迁移配置
  42. │-- phpunit.xml.dist PHPUnit 配置
  43. │-- phpunit.xml.html PHPUnit 生成 HTML 覆盖率配置,需要安装 xdebug
  44. └── ...

注意

请留意目录名的大写。

WARNING

在 Mac 或者 Linux 环境下面,注意需要设置 runtimebootstrapstorage 目录权限为 0777。

多应用

QueryPHP 设计了一个很简单的规则来访问多应用,只需要加 : 即可,该目录会自动识别为应用,例如:

  1. http://127.0.0.1:9527/ 默认应用首页
  2. http://127.0.0.1:9527/:admin/ Admin 应用首页
  3. http://127.0.0.1:9527/api/show 默认应用 API 控制器 show 方法
  4. http://127.0.0.1:9527/:admin/api/show Admin 应用 API 控制器 show 方法