# 1):变量命名
### 命名总则
QueryPHP 以匈牙利命名法为基本的命名规范,并有所简化以满足我们产品的设计。基本原则是:**变量名=属性+类型+对象描述**,容易记忆容易理解,并且保证名字的连贯性。
通常来说取一个变量的类型的前 **1** 位或者前 **3** 位为属性,其它类型:**量名=类型+对象描述**。
| 类型 | 命名规范 | 描述 |
| --- | --- | --- |
| 字符串 | $sMyName,$strMyName | string |
| 布尔值 | $bIsYes,$booIsYes | boolean |
| 数组 | $aMyArray , $arrMyArray | array |
| 对象实例 | $oMyObject,$objMyObject | object |
| 数字(浮点数、整型) | $nGoodsCount , $numGoodsCount | number |
| 浮点数 | $fMyName , $floMyName,$dMyName , $douMyName | float,double |
| 整型 | $iGoodsCount , $intGoodsCount | integer |
| 回调 | $cGetName , $calGetName | callback |
| 资源句柄 | $hMysqlConnect , $hanMysqlConnect,$rMysqlConnect , $resMysqlConnect | resource,handle |
| 混合类型 | $mArrayString , $mixArrayString | mixed |
| 其它类型 | $otherTest , $helloWorld | 其它类型,去掉属性 |
> 注意:按照我们命名习惯书写一个变量,如果这个变量的类型在中途变更,命名以第一个为准,防止重新创建变量。
~~~
$strName = 'Hello world';
$strName [] = $strName; // 转换为数组,保持不变
~~~
### 常量 define
define 函数的第一个参数全部大写,且以 "_" 分割,例如:
~~~
define('Q_VER', '4.0');
~~~
### 数组键值
数组的键值以 '_' 分割,不采用驼峰法
~~~
$arrData['first_name'] = 'Hello Xiaoniu';
~~~
# 2):命名空间
QueryPHP 基于 **PSR-4** 自动加载规范,并且注意如下规范,命名空间使用前必须先注册:
* 目录统一建议使用小写(大写也支持);
* 类文件统一以 .php 为后缀;
* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
* 类名和类文件名保持一致,统一采用小写,以 _ 分隔;
~~~
/**
* 注册框架命名空间
*/
Q::import ( 'Q', Q_PATH, [
'ignore' => [
'resource'
]
] );
~~~
# 3):方法或函数
QueryPHP 方法和函数均建议使用 **驼峰法** 来命名。
* 首字母小写;
* 多个单词间不使用间隔,除第一个单词外,其他单词首字母大写;
~~~
// 函数
function myFunction ( ) {
echo 'Hello world';
}
// 类的方法
class demo {
function demoHello( ) {
echo 'Hello world';
}
}
~~~
# 4):数据库
数据库几乎是所有应用的标准,命名也需要讲究一下。
### 数据库表名
* 表名均使用小写字母;
* 表名字使用统一的前缀,且前缀不能为空
* 对于视图,使用_view结尾,普通表不用加任何后缀;
* 对于多个单词组成的表名,使用_间隔;
~~~
q_user
q_user_info
q_book_store_view
~~~
### 数据库字段
* 表名均使用小写字母;
* 表名字使用统一的前缀,且前缀不能为空
* 对于视图,使用_v结尾,普通表不用加任何后缀;
* 对于多个单词组成的表名,使用_间隔;
~~~
// 数据库表
q_hello
// 字段
hello_id
hello_user
hello_user_name
~~~
# 5):注释和其他
也许你注意到了,还有很多其它的比如注释的书写格式,这些东西大家可以看看源代码借鉴一下。
- 关于 QueryPHP
- 获取 QueryPHP
- 环境要求
- 许可协议 Free
- 执行流程 MVC
- 命名规范 $sName
- 目录结构 DIR
- 单一入口 index.php
- 响应客户端请求 URL
- 命名空间与自动载入 Autoload
- 路由
- 路由导入
- 批量导入
- 参数正则
- 分组定义
- 路由绑定
- 路由域名
- 分层控制器
- 默认和初始化APP
- 默认控制器和方法
- url 模式
- url 生成
- url 伪静态
- url 重写
- url 重定向
- 控制器绑定
- 方法器分层
- 控制器 __init
- 控制器方法交互
- 模板引擎语法
- C变量输出 $sName
- C变量支持函数和方法 $sName|trim
- C快捷输出 ~
- C标签简化 Css & Javascript
- C默认值 eq 三元运算符
- C变量运算符 +-
- 变量递增递减 ++--
- C循环数据 list
- N变量赋值 assign
- N循环数据 list
- N循环数据高级版 lists
- C循环数据 while
- N循环数据 while
- C循环数据 for
- N循环数据 for
- C条件判断 if
- N条件判断 if
- 标签嵌套无限层级
- N循环流程 break & continue
- N使用 PHP 代码
- N包含子模板 include
- J模板引擎 intro
- J条件判断 if
- J循环数据 each
- J变量 & 表达式
- J变量支持函数和方法 hello|test
- J默认值 eq 三元运算符
- J框架前端组件 jquery.queryphp.js
- J前端 CSS 规范
- J前端 JS 规范
- 保护标签自身 tagself
- 数据库
- 数据库配置
- 执行原生 sql 语句
- 数据库事务
- 数据库构造器 prefix
- 数据库构造器 table
- 数据库构造器 forceIndex
- 数据库构造器 where
- 数据库构造器 bind
- 数据库构造器 join
- 数据库构造器 union
- 数据库构造器 orderBy
- 数据库构造器 groupBy
- 数据库构造器 having
- 数据库构造器 distinct
- 数据库构造器 aggregate
- 数据库构造器 limit
- 数据库构造器 forUpdate
- 数据库构造器 columns
- 数据库构造器 reset
- 数据库集合查询
- 数据库查询数据 get
- 数据库查询多条数据 getAll
- 数据库查询单条数据 getOne
- 数据库查询聚合查询 aggregate
- 数据库写入数据 insert
- 数据库写入数据 insertAll
- 配置
- 配置格式
- 惯性配置
- 配置文件
- 读取配置
- 设置配置
- 删除配置
- 日志
- 日志配置参数
- 日志路径
- 日志过滤器
- 日志处理器
- 缓存
- 缓存配置参数
- 缓存路径
- 缓存指定时间
- COOKIE
- COOKIE 配置参数
- 开发调试
- 页面 trace