• 应用结构
    • 应用骨架
    • 组件骨架结构

    应用结构

    一个完整的swoft应用可以包含:

    • console 应用
    • http 服务(跟传统的框架差不多)
    • websocket 服务
    • rpc 服务

    swoft-cloud/swoft 即是一个完整应用的demo。当然,如果你只想使用一部分功能也是可以的

    应用骨架

    app 下的类目录为了避免一些文件夹名称没有复数单词,导致命名不统一,所有的文件夹名称 统一使用单数

    1. ├── app/ ------ 应用代码目录
    2. ├── Annotation/ ------- 定义注解相关
    3. ├── Aspect/ ------- AOP 切面
    4. ├── Bean/ ------- 一些具有独立功能的class bean
    5. ├── Console/ ------ 命令行代码目录
    6. ├── Command/
    7. ├── Exception/ ------ 定义异常类目录
    8. └── Handler/ ------ 定义异常处理类目录
    9. ├── Http/ ------ HTTP 代码目录
    10. ├── Controller/
    11. └── Middleware/
    12. ├── Helper/
    13. └── Functions.php
    14. ├── Listener/ ------ 事件监听器目录
    15. ├── Model/ ------ 模型、逻辑等代码目录(这些层并不限定,根据需要使用)
    16. ├── Dao/
    17. ├── Data/
    18. ├── Logic/
    19. └── Entity/
    20. ├── Rpc/ ------ RPC 代码目录
    21. └── Service/
    22. └── Middleware/
    23. ├── WebSocket/ ------ WebSocket 代码目录
    24. ├── Chat/
    25. ├── Middleware/
    26. └── ChatModule.php
    27. ├── Application.php -------- 应用类文件继承自swoft核心
    28. ├── AutoLoader.php -------- 项目扫描等信息(应用本身也算是一个组件)
    29. └── bean.php
    30. ├── bin/
    31. ├── bootstrap.php
    32. └── swoft ------ swoft 入口文件
    33. ├── config/ ------ 应用配置目录
    34. ├── base.php --- 基础配置
    35. └── db.php
    36. ├── public/ ------ WEB可访问目录
    37. ├── resource/ ------ 应用相关资源目录
    38. ├── language/ ------ 语言资源目录
    39. └── view/ ------ 视图资源目录
    40. ├── runtime/ ------ 临时文件目录(日志、上传文件、文件缓存等)
    41. ├── test/ ------ 单元测试代码目录
    42. └── bootstrap.php
    43. ├── composer.json
    44. ├── composer.lock
    45. ├── phar.build.inc
    46. └── phpunit.xml.dist

    render by tree -L 2 -F --dirsfirst

    组件骨架结构

    1. ├── src/
    2. ├── Annotation/ -------- 组件注解类定义
    3. ├── Bean/ ------- 一些具有独立功能的 class bean
    4. ├── Concern/ ------- traits classes
    5. ├── Contract/ ------- interface classes
    6. ├── Exception/
    7. ├── Helper/
    8. ├── Listener/
    9. ├── AutoLoader.php -------- 组件扫描等信息
    10. ├── test/ ------ 单元测试代码目录
    11. ├── unit/
    12. ├── testing/
    13. └── bootstrap.php
    14. ├── LICENSE
    15. ├── README.md
    16. ├── composer.json
    17. └── phpunit.xml

    src/AutoLoader.php 是一个组件必须存在的文件,swoft依据它来确定要扫描那些目录