• 目录结构
    • 基本结构
    • 多应用

    目录结构

    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. │-- .php_cs.dist 统一团队风格配置
    36. │-- .travis.yml Travis 持续集成配置
    37. │-- composer.json Composer 配置
    38. │-- leevel 命令行工具集 php leevel
    39. │-- package.json 前端包
    40. │-- phinx.yml 数据库迁移配置
    41. │-- phpunit.xml.dist PHPUnit 配置
    42. │-- phpunit.xml.dist PHPUnit 生成 HTML 覆盖率配置,需要安装 xdebug
    43. └── ...

    注意

    请留意目录名的大写。

    danger

    在 Mac 或者 Linux 环境下面,注意需要设置 runtimestorage 目录权限为 777。 当然实际上我们在 Mac 开发环境直接给某个目录授权给用户。

    1. drwxr-xr-x 62 dyhb staff 1.9K 11 19 11:14 codes

    多应用

    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 方法