- PHP >= 7.0
- Mysql >= 5.7
- Redis >= 2.8
- 由基本模块和项目模块组成
- 基本模块提供核心路由、基本类库支持
- 项目模块可以有多个,每个项目有独立入口
Core框架核心cmd命令行控制library公共类库resource公共资源document文档
_框架管理Admin管理端
basic公共基础config配置文件,分为basic(全局)和local(本地)两部分control控制器service业务逻辑data数据操作view表现层,分为assets(资源)、template(模板)widget(部件)三部分file项目文件public对外入口
server {
listen 80;
server_name <domain>;
index index.php index.html;
location /assets/ {}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ index.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
为项目静态文件建立软连接
public/assets -> view/assets
view/assets/resource -> ../resource
- boot.ini
- mysql.ini
- redis.ini
- 由web入口
public下的的index.php文件启动- CGI模式:用于WEB启动
- CLI模式:用于命令行执行
- TEST模式:用于单元测试
- 设定模块后,根据传入的
URI定位controller - 由Core/bootstrap依次执行
runBeforerunrunBehind方法- 如果
runBeforerunBehind返回false,将退出执行 run方法为执行主方法,并接收URI中的控制参数
- 如果
- 采用 MVCS 层级划分,将传统的 MVC 中的model,拆分成
service和datacontroller为控制器,负责参数接收和响应控制service处理业务层逻辑data处理数据操作view负责渲染显示
- 默认路由 domain/path[-args]
- domain -> App prefix
- path -> controller 的 Namespace
- {args} ->
controller::run的参数
- rewrite规则
- 如存在{app}/router.php文件,则优先使用所定义的规则
router::attr添加需要捕获的属性router::rewrite设置rewrite规则
- 根据命名空间定位文件路径,大小写敏感
routemap映射:如果类名前缀和routemap匹配,则视为其处在对应模块下
- 分为本地
local和全局global两类,本地配置的优先级更高 - 可通过
bin/make-conf预解析配置文件 boot.ini为启动配置文件system.env=> 系统运行环境,LIVE:线上;DEV:开发public.assets=> 静态资源文件路径debug.mask=> 调试掩码,只有通过此掩码的调试记录才会输出debug.report=> 调试报告输出形式,可按位叠加,STD:1 (标准输出);LOG:2 (调试日志);JSC:4 (JS控制台)
cron.ini为cron配置文件* * * * * bin/cron --prefix=Demo 1>>cron.log 2>&1
- 原生PHP标签写法,不引入新的模板
- 使用
bin/make-vmap,根据最后修改时间生成静态资源的版本号 - 通过部件
widget实现模块复用
- 异常抛出都应继承自
coreException - 在
index入口做统一捕获,并决定如何处理异常