多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 应用目录结构: ``` ├── 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