一个简单的PHP开发框架
最初起源于一款web游戏,后来用来做了款O2O应用
主要是围绕一个字 懒.. 主要特点是项目继承(类, 配置) simple/core 是核心 applications/base 是项目基础,继承自核心 applications/extend 是项目扩展,继承自base,可以继续扩展 extend2, 3, admin.. 项目下的类默认继承自base,也可单独指定(项目间可以相互继承)
类名非继承或覆盖整个项目中不可出现重复,所有框架内的类使用\调用 \DB \Storage 框架功能通过组件提供(通过config配置), 组件快速访问通过helper提供(相当于Facade)
\Controller::run(); // MVC模式运行 \Logic::run(); // API模式运行 同是要创建 rule定义接口访问规则 和 logic实现接口逻辑 \AR('user')->find() // 数据库操作
约定 所有文件使用UTF-8编码(无BOM) 类名非继承或覆盖整个项目中不可出现重复,所有框架内的类使用\调用 \DB \Storage 目录名全小写(view和vendor下的目录除外) 文件名即类名 区分大小写(vendor第三方类可以不受此约定限制) 类名驼峰命名(User,UserModel,TestClassName) 表名列名全小写,下划线分割,主键自增id 字符串使用单引号
目录 目录说明一 applications base 基础项目 admin 管理后台(自定义 的 #扩展目录) simple core 核心目录 simple.php 引导文件(从入口文件引用此文件) public 可以被外部直接访问的目录 index.php 定义 APPLICATION_PATH 及 工作目录 APP_NAME(默认为 base), 引入 引导文件(simple.php), \Logic::Run 或 \Controller::Run admin.php 定义 工作目录(APP_NAME admin),其它参照index.php 目录说明二 核心目录 core 基础目录 base (可修改,自定义) 扩展目录 admin,..(自定义,可以和基础目录相同即基础目录就是扩展目录) 目录说明三 api 定义API 严格模式下必须定义 component 组件 interfaces 组件接口 controller 控制器 应用逻辑 data SQL文件等 helper 助手类 一般用来便捷调用组件等 libraries 类库 logic API实现 model 模型 业务逻辑 rule API规则 vendor 第三方类库 view 视图
类自动载入会先从 扩展项目 找起,然后是 基础项目,然后是 核心项目 目录搜索顺序为 helper,component,logic,controller,model,rule,api
组件 通过Config->Component配置组件 如果需要统一的接口,可以定义在component\interfaces下
关于Controller/Logic和Model 原则上 C/L层放应用逻辑,M层放业务逻辑+数据访问 当业务逻辑简单 无需复用 快速开发 调试 一些临时工具等 也可直接写在C/L层甚至不用C/L
框架架构 数据存储层( MySQL MemCache/KVDB Storage ) 数据访问层( AR Cache Storage ) 业务逻辑层( Model ) 应用逻辑层( Logic Controller ) 格式数据层( Response ) 视图逻辑层( View )( WEB应用Ajax请求完成后处理返回的数据也属于视图层 安卓/iOS等请求接口处理返回数据也属于视图层 )