###introduce: php framework PI (目前本项目未经作者允许不能应用于其他项目,也不能基于本框架二次开发)
###depends: php >= 5.2.0 webserver open path_info
###features:
1 轻量+插件化:核心功能支持核心业务逻辑,不同插件支持不同项目逻辑(如app.php支持com模块,web.php+路由插件支持web-mvc项目)
2 强调代码管理:追求严格的代码格式控制
3 支持远程调用:每个接口的方法都可以配置是否远程调用,服务器和客户端无需做任何调整
###usage: 思想: 1 本框架是为php基本应用场景开发,比如最常见的四种依赖php语言的场景: web环境,task后台脚本环境,api移动端环境,其他项目直接嵌入框架代码的环境(暂时叫com环境) 2 在一个中大型的又依赖php语言的项目来说,上面的4种场景基本都有。 3 PI框架的最小核心围绕 类库加载+操作数据的核心(暂时称com模块,区别上面的com环境),并提供接口的rpc调用功能 4 在最小核心基础上加载不同的管道(插件),实现不同的场景。不同的场景可以共享com模块的逻辑 5 框架会不断加强开发规范,因为比较认同好代码都靠代码管理写出来的
pi目录(框架核心代码):
-- App.php : 这个核心初始化了环境和核心库,比如db,cache,log,php运行环境,基本错误处理,自动加载方法(core/loader.php)
-- Pi.php : 提供了核心配置加载Pi::get,和不同场景的配置加载Conf::get,com模块用pi的加载配置,插件场景用conf加载配置。
还有include文件的公共方法Pi::inc,反射调用类方法的pi_method_call
-- Task.php: 提供了脚本场景的基本初始化,是个示例。基本功能都有,可以直接用,也可以参考重构
-- Com.php: 提供了嵌入场景的基本初始化,是个示例。基本功能都有,可以直接用,也可以参考重构 (比如用ci框架需要嵌入pi)
-- Web.php: 提供了web场景的基本初始化,是个示例。基本功能都有,可以直接用,也可以参考重构 (就是最常见的web-mvc)
-- Api.php: 提供了api场景的基本初始化,是个示例。基本功能都有,可以直接用,也可以参考重构 (可以为内网接口或者移动开发用)
--config.inc.php: 框架的配置文件,最核心的配置
pi/core目录:
-- 各种核心类库 db,cache,log,view(暂时用的smarty),一些接口类,虚基类
以及自己实现的一些插件路由(可以自己开发重构,改配置加载哪个都行)
pipe目录:
-- 各种插件,app.php的run方法会运行整个流程,他会根据配置加载插件(可调顺序),输出最后结果
这里面的插件是基本插件,可以自己实现,比如,web-mvc的全部运行过程都是用插件实现的,其他场景也是
util目录:
-- 类库,跟业务无关的通用类库
misc目录:
-- 帮助文档,工具目录,比如build.sh会帮助生成一个项目目录结构,check_code_std检查所有项目代码,看有没有不按规则开发:
比如出现其他域名,出现_GET,直接使用了include之类的,不断完善中...
项目目录:
参考proj目录。给出了4中场景的实例,可以跟着代码跑个全流程
###todo list: 1 (ok) 梳理核心代码所有异常和错误梳理 - 该返回的返回,该报错的报错 2 (ok) 梳理输入输出缓存模型 3 (ok) 优化代码 4 (no) 队列库:添加mongodb队列引擎 5 (continue) 整理框架工具 + 文档 6 (continue) 添加好的类库