对 yaf 框架做了一些修改,使其更易用
- 引入 composer 管理依赖库和自动加载
- 引入 illuminate/container Ioc 容器,实现控制反转,依赖注入
- 修改 配置文件加载机制,实现多配置文件,延迟加载
- 修改 框架路由加载流程,YAF框架初始化和匹配路由,自定义方式执行路由
- 修改 框架结构,使用composer自动加载,可以任意增加自定义模块目录
- 增加 event 和 middleware 支持
require php >= 7.0
yaf
├─application 应用目录
│ ├─events 事件定义目录
│ ├─jobs 消息任务相关目录
│ ├─library 默认的扩展类库目录
│ ├─listeners 事件监听者目录
│ ├─middleware 中间件目录
│ ├─models model目录
│ ├─modules 模块目录
│ │ └─Api 业务模块目录
│ │ └─actions action 目录
│ ├─services services 目录
│ ├─Application.php 自定义框架功能
│ └─Bootstrap.php 启动引导文件
│ └─helpers.php 辅助函数
|
├─conf 配置文件目录
│ ├─application.ini 应用配置文件
| ├─cache.ini 缓存配置文件
│ ├─database.ini 数据库配置文件
│ └─route.php 路由配置文件
|
├─public
│ ├─index.php 入口文件
│ └─.htaccess apache使用
|
├─script 普通脚本文件目录
├─swoole swoole脚本文件目录
|
├─vendor 第三方类库目录(Composer依赖库)
├─.gitignore git 忽略文件
├─cli.php 命令行入口文件
├─composer.json composer 文件
├─composer.lock composer 文件
├─LICENSE LICENSE
├─README.md README
- 控制器层负责接收输入,调用 Service 层执行业务逻辑,响应输出
- Service 层负责具体业务逻辑,从 Model 层获取数据
- Model 层直接操作数据库,可以进行一些数据校验、字段限制、格式或类型转换之类数据的操作
- 类和方法的功能要“专注”,不要使类的依赖关系变复杂
- 变量尽量先初始化再使用,对数组操作要注意键不存在的情况,
- 对于可能抛出异常的代码,要有防范
- 代码要有注释,除非一眼就能看出来代码表达的意思