概念规范
错误码
所有的错误提示都在语言包error.php中,键值为错误码,在json中会作为code值。
- 状态码为0表示无错
- 1-999为框架错误码
- 小于0为PHP错误码
所以在模块语言包中定义错误码建议从1000开始。
命名空间
- 内核:以 boa 开头
- 模块:以 mod 开头
后面按照文件路径命名,子命名空间分隔符请用 \
SQL保留字
数据库字段命名请不要使用SQL保留字,如果必须要用,可以使用原生查询
目录分隔符
不论在Windows、Linux还是Mac OS中,所有文件路径中的目录分隔符,除命名空间外请统一用 /
框架编码
框架统一使用UTF-8编码(由CHARSET指定),在使用之前若想更换框架编码:
- 修改配置:CHARSET
- 修改数据库配置的连接编码
- 使用工具转换中文语言包编码:/boa/language/zh-cn/
其中生成解析Json/XML文档的内容,压缩ZIP时的文档注释必须使用UTF-8,使用其他编码时用到这些功能要注意
开发时遇到乱码问题,请注意编辑器中使用的编码与框架配置CHARSET的编码要一致
命名约定
除了常量全部大写,其他默认一般小写,类名即文件名。
容器式调用
boa命名空间下的类,可以用 boa::$name() 来调用,$name 为要调用的类名,不用管他是否初始化。该写法不适用于以下情况:
- 静态类:boa,msg,util
- boa子命名空间下的类
$a = boa::file(); //得到file类
$a->chmod('D:/boa/www/');
$b = boa::log([...]); //得到log类
$b->set('info', 'You are awesome!');
节点式写法
系统中很多标识采用'.'连接符的节点式写法,比如 admin.index.test 表示 admin模块->index控制器->test动作。
- 数组:'节点一.节点二.节点三' 表示某多维数组的结果
- 语言:boa::lang('模块.语言文件.键') 首个节点为 boa 表示内核
- 缓存:boa::cache()->get('模块.缓存器') 首个节点省略表示内核
- 模型:boa::model('模块.模型')
- 模板:$this->view->html('模块.控制器.动作') 全部省略表示当前动作
- 路由表:'模块.控制器.动作' 二和三节点可省略
- 权限表:'模块.控制器.动作' 二和三节点可省略
- 命令行:php boa -r 模块.控制器.动作 二和三节点可省略
环境数据
“环境”非PHP的环境变量,程序的执行主要依赖该数据,改变该数据则可以改变程序的执行方向。可以用 boa::env() 得到当前程序运行环境,主要包括以下元素:
- lng:当前语言
- mod:当前模块
- con:当前控制器
- act:当前动作
- var:其他数据组成的数组,比如:page(分页)