- 应用结构
- 应用骨架
- 组件骨架结构
应用结构
一个完整的swoft应用可以包含:
- console 应用
- http 服务(跟传统的框架差不多)
- websocket 服务
- rpc 服务
swoft-cloud/swoft即是一个完整应用的demo。当然,如果你只想使用一部分功能也是可以的
应用骨架
app下的类目录为了避免一些文件夹名称没有复数单词,导致命名不统一,所有的文件夹名称 统一使用单数
├── app/ ------ 应用代码目录│ ├── Annotation/ ------- 定义注解相关│ ├── Aspect/ ------- AOP 切面│ ├── Bean/ ------- 一些具有独立功能的class bean│ ├── Console/ ------ 命令行代码目录│ │ ├── Command/│ ├── Exception/ ------ 定义异常类目录│ │ └── Handler/ ------ 定义异常处理类目录│ ├── Http/ ------ HTTP 代码目录│ │ ├── Controller/│ │ └── Middleware/│ ├── Helper/│ │ └── Functions.php│ ├── Listener/ ------ 事件监听器目录│ ├── Model/ ------ 模型、逻辑等代码目录(这些层并不限定,根据需要使用)│ │ ├── Dao/│ │ ├── Data/│ │ ├── Logic/│ │ └── Entity/│ ├── Rpc/ ------ RPC 代码目录│ │ └── Service/│ │ └── Middleware/│ ├── WebSocket/ ------ WebSocket 代码目录│ │ ├── Chat/│ │ ├── Middleware/│ │ └── ChatModule.php│ ├── Application.php -------- 应用类文件继承自swoft核心│ ├── AutoLoader.php -------- 项目扫描等信息(应用本身也算是一个组件)│ └── bean.php├── bin/│ ├── bootstrap.php│ └── swoft ------ swoft 入口文件├── config/ ------ 应用配置目录│ ├── base.php --- 基础配置│ └── db.php├── public/ ------ WEB可访问目录├── resource/ ------ 应用相关资源目录│ ├── language/ ------ 语言资源目录│ └── view/ ------ 视图资源目录├── runtime/ ------ 临时文件目录(日志、上传文件、文件缓存等)├── test/ ------ 单元测试代码目录│ └── bootstrap.php├── composer.json├── composer.lock├── phar.build.inc└── phpunit.xml.dist
render by
tree -L 2 -F --dirsfirst
组件骨架结构
├── src/│ ├── Annotation/ -------- 组件注解类定义│ ├── Bean/ ------- 一些具有独立功能的 class bean│ ├── Concern/ ------- traits classes│ ├── Contract/ ------- interface classes│ ├── Exception/│ ├── Helper/│ ├── Listener/│ ├── AutoLoader.php -------- 组件扫描等信息├── test/ ------ 单元测试代码目录│ ├── unit/│ ├── testing/│ └── bootstrap.php├── LICENSE├── README.md├── composer.json└── phpunit.xml
src/AutoLoader.php是一个组件必须存在的文件,swoft依据它来确定要扫描那些目录
