# phpMore-framework **Repository Path**: sujunli/phpMore-framework ## Basic Information - **Project Name**: phpMore-framework - **Description**: phpMore是一款基于Swoole的高性能、多用途、分布式的php应用程序框架 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 2 - **Created**: 2019-04-15 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: webframework **Tags**: None ## README # phpMore-framework #### 介绍 phpMore是一款高性能、多用途、分布式的php应用程序框架,常驻内存型PHP框架,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。, phpMore-framework为核心框架文件 #### 软件架构 1、代码分为三层结构,分别为Service层,Dao层,Sdk层, Service层的方法就是用路由触发,Dao层为业务数据源层,Sdk为接口层, 其中Bo为业务对象,在Service层中用于各个Dao之间数据传输,Po为持久对象(Form、Vo对象也是持久对象),在Dao层中用于各个Sdk层传输数据。 2、目录结构分两个主目录,分别为local本地配置目录和vendor包目录。 #### 安装教程 1. 将phpMore(https://gitee.com/sujunli/phpMore.git) 拉到用户项目的根目录下。 2. 再将phpMore--framework拉(pull)到项目的vendor/cn/gz53/framework目录中 #### 使用说明 0. 需要PHP7.0以上 1. 如果用户觉得不方便用,可省去Dao层,也可以省去Bo对象,Po、Form、Vo对象,甚至一些Sdk都可以省去,但建议三层结构,因为清晰的计算输入输出。 2. 核心框架的三层结构的各个层的对象方法的参数都是用接口方式,返回值要么true,要么false,说明方法是要么继续要么返回。 3. CLIApplication是PHP的命令运行模式的应用程序,为单进程运行。 4. ScriptApplication是PHP的CGI运行模式的应用程序,为多进程运行(多进程由如:php-fpm提供) 5. HttpServerApplication是PHP的HttpServer运行模式的应用程序,需要swoole扩展支持,为多进程运行,常驻内存型PHP框架,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。 6. WebSocketServerApplication是PHP的WebSocketServer运行模式的应用程序, 需要swoole扩展支持,为多进程运行。 7. WorkerApplication是PHP的进程池运行模式的应用程序,需要swoole扩展支持,为多进程运行,可以定义每一个进程的业务路由。 8. framework中的application为框架基本的应用程序,用户可自定义应用程序框架,其中ScriptApplication与CLIApplication主要为方便在windows下开发调试用的,因为目前windows不支持swoole, 生产环境用HttpServerApplication、WebSocketServerApplication、WorkerApplication等,ScriptApplication与CLIApplication的不同主要是一个超时与不超时, 用户可以刷新页面即可调试,命令行下运行命令也可调试。 9. phpMore与phpMore-framework是分开的,用户拉到一起就可以。 10. 原则上local目录下是没有代码文件,哪些php文件只是php格式的配置文件除了入口php文件。至于哪个AutoLoad.php 用户可使用在vendor目录下的composer加载器。 11. 用户的业务代码也是放到vendor目录,这样用户代码就可以迁移,不用吊死在一棵框架树下。建议目录结构按各自的域名存放,这样防止同名冲突。 12. 写好Service业务方法后,要在local/conf/routers与local/conf/services 分别配置路由映射与service方法入口。 13. 原则用户的Service、Dao、Sdk、Bo,Po、Form、Vo对象都要继承framework中的Service、Dao、Sdk、Bo,Po、Form、Vo类,这样可以存容器中,用户可以自定义Service、Dao、Sdk、Bo,Po、Form、Vo的子类,然后用户的其它类再继承这些子类,这样可以减少耦合。 14. 要注意常驻内存下变量数据的重置,特别是HttpServerApplication模式下。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)