#### 應用目錄結構:
```
├── app # 應用目錄,一般開發者只需要編寫到這個目錄
│?? ├── controllers # 控制器類
│?? ├── data # 存放有關數據類的文件,例如進程id
│?? ├── log # 存放有關日志類文件
│?? ├── static # 靜態文件,例如css,js,圖片等等
│?? └── views # 視圖文件
├── command # 命令目錄
│?? ├── HttpCommand.php # http服務管理命令
│?? └── WebSocketCommand.php # websocket服務管理命令
├── common # 公用目錄
│?? ├── components # 開發這自定義組件存放目錄
│?? ├── config # 配置文件
│?? ├── services # 服務類
│?? └── utils # 工具類
├── vendor # composer安裝庫目錄
└── zcswoole.php # 框架單一入口文件
```
#### 核心目錄結構:
```
├── App.php # 框架應用類
├── command # 命令目錄
│?? ├── CommandContext.php # 命令上下文類,用于解析命令
│?? ├── CommandController.php # 用于實現業務的控制器
│?? ├── CommandFactory.php # 生成命令對象工廠
│?? ├── Command.php # 命令抽象類,定義了需要實現的方法
│?? ├── HttpServerCommand.php # http服務
│?? ├── ServerCommand.php # server服務
│?? └── WebSocketServerCommand.php # websocket服務
├── components # 組件類,所有組件都為懶加載
│?? ├── Component.php # 組件基類,用于管理組件
│?? ├── Logger.php # 日志組件
│?? ├── RpcClient.php # 遠程rpc組件
│?? └── Session.php # session組件
├── Config.php # 存放配置文件,只會加載一遍
├── Container.php # 容器,暫時未用到
├── Event.php # swoole事件
├── http
│?? ├── HttpController.php # http服務控制器
│?? └── Router.php # http路由
├── rpc
│?? └── RpcProtocol.php # 遠程rpc協議
├── ServiceLocatorInterface.php # 服務定位器接口
├── ServiceLocator.php # 服務定位器
├── services
│?? ├── MysqliDB.php # mysql
│?? └── ZRedis.php # redis
├── Table.php # swoole table 內存表
├── utils
│?? ├── Console.php # 控制工具
│?? └── Factory.php # 對象生成工廠
└── ZCSwoole.php # zcswoole單例
```
#### 命令管理
> zcswoole所有命令都存放在command目錄,一個類文件表示一個命令,例如HttpCommand表示http服務,如下:
```php
php zcswoole.php http [start|stop|status|reload]
```
#### http服務
> http服務內置MVC模式,controllers存放控制層代碼,視圖層整合了smarty
#### websocket服務
> websocket服務除了可以使用websocket服務外,另外內置了http服務,即啟動websocket服務時相當啟動了http服務
#### 組件
> zcswoole框架的類庫可以封裝為組件,通過服務定位器模式定位組件,http代碼可以使用ZCSwoole調用組件,例如ZCSwoole::$app->logger->write()
#### rpc
> zcswoole框架rpc已內置在http服務,通過ZCSwoole::$app->rpc->request()調用遠程api