1
0
mirror of https://gitee.com/tawords/tawords-docs synced 2025-01-31 13:00:27 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
tawords-docs/docs/manual/standard/code-specification.md

190 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 命名规则
?> 当前规范订立日期2021年8月17日
为避免重复及便于识别,应用名中不能出现特殊字符,应用识别名须遵循相应书写规范。不得使用拼音作为命名方式。
### 文件名称规范
项目所有目录及文件名全部采用小写+下划线 `_` 形式(类文件名除外),例如 `system_basic.php`,不得出现大写字母。
类的文件名以 `类名.class.php` 为后缀。(一个.class.php文件只能包含一个类的定义
配置文件的文件名以 `文件名.inc.php` 为后缀。inc即为include file
### 类命名规范
单词首大写,其余字母小写,如 `Tawords``UserAccount`
类名不宜超过三个字母。
### 函数、方法命名规范
> 函数与方法的区别:函数是单独存在的,方法是依赖于类存在的。
全部使用小写,使用下划线`_`连接。如:`get_user_info`
### 变量命名规范
1. 变量首字母小写采用驼峰式命名法Camel-Case即“**小驼峰**”。
2. 除非特殊情况,一般**不使用下划线**。
3. 不要使用容易产生混淆的命名(如 `$data1``$data2`
4. **数组变量**名后带 `Array` ,如 `$userInfoArray = array();`
5. **全局变量**前带 `g` ,以明确变量作用域,如 `$gUser`(全局变量 `$bta` 除外)
6. **静态变量**后带 `Static` 或前带 `s` ,如 `$sUrl``$fileArrayStatic`
7. **对象变量**后带 `Object` ,如 `$databaseObject`
如:`$userName``$delUserSql`
> 另外,全局变量为:$bta
### 常量命名规范
使用英文名词、动词,所有字母均大写,单词间使用下划线 `_` 分隔。
如:`define( 'A_GLOBAL_CONSTANT', "Heool world!" );`
### 数据库表名命名规范
所有字母均小写,使用下划线 `_` 连接,表名前需添加统一前缀(默认为 `bta_` ),如:`bta_users`
## 代码规范与编码风格
?> 当前规范订立日期2021年8月17日
1. 对于只含有php代码的文件在文件结尾处忽略掉 "?>" 。这是为了防止多余的空格或者其它字符影响到代码。
2. 缩进应该能够反映出代码的逻辑结果尽量使用四个空格不要使用制表符TAB因为这样能够保证有跨客户端编程器软件的灵活性。
3. 函数、方法名与参数列表小括号间,参数列表小括号与花括号之间使用空格隔开,如:
```php
function get_user_info ($userId) {
// code
}
```
4. 当一个字符串是纯文本组成的时候(即不含有变量时),以单引号(') 作为定界符,如:`$name = 'tawords';`
5. 当用点号 `.` 连接各字符串的时候,字符串与点号间用一个空格隔开,且允许把它分割成多行以增强可读性。
6. 类中方法用 `private` `protected` 或者 `public `表明其作用域。
7. 即使if语句可以不适用花括号的情况下也建议带上花括号。
## 注释规范(待定)
?> 当前规范订立日期2021年8月17日
> `@version`表示当前代码文件迭代版本
> `@since` 表示从该版本开始加入该类、接口、方法
> `@auther`表示当前代码作者
> `@modify`表示当前代码修改时间
> `@deprecated` 表示不建议使用该类/接口/方法
> `@exception` 标注Runtime异常
> `@throws` 标注非Runtime异常
普通代码文件头
```php
/**
* 背Ta单词 tawords
*
* @version 1
* @since 1.0.0
* @auther Coding Zhang
* @modify 2021.08.17
*/
```
```php
/**
* 背Ta单词 tawords
*
* 一句话简介
*
* @version 1
* @since 1.0.0
* @auther Coding Zhang
* @modify 2021.08.17
*/
```
主路由文件添加官网地址以及开源Git仓库地址
```php
/**
* @website tawords.com
* @repository https://gitee.com/tawords/tawords/
*/
```
类、接口
```php
/**
* 〈一句话功能简述〉LogManager 类集中控制对日志读写的操作。
* 〈功能详细描述〉全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,读取或写入符合条件的日志纪录。
* @author [作者]张三,李四,王五
* @version [版本号, YYYY-MM-DD]1.2, 2001-03-25
* @see [相关类/方法]LogIteraotor
* @see [相关类/方法]BasicLog
* @since [产品/模块版本]CommonLog1.0
*/
```
函数、方法
```php
/**
* 〈一句话功能简述〉
* 〈功能详细描述〉
* @param [参数1] [参数1说明]
* @param [参数2] [参数2说明]
* @return [返回类型说明]
* @exception/throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* @deprecated
*/
```
```php
/**
* @Purpose:
* 执行一次查询
* @Method Name: Query()
*
* @Param: string $queryStr SQL查询字符串
* @Param: string $username 用户名
*
* @Author: Michael Lee
*
* @Return: mixed 查询返回值(结果集对象)
*/
function($queryStr, $username)
```
> 本规范订立时,参考了以下文章:
>
> [PHP编码规范命名规则](http://www.splaybow.com/post/php-coding-guifan.html)
>
> [php中类文件名的命名的规则是什么](https://www.cnblogs.com/Renyi-Fan/p/9417604.html)
>
> [PHP程序员必知的文件名命名规范](https://www.szhulian.com/new/729.html)