编码规范

最后更新于:2022-04-01 06:04:23

> 参考:[ThinkPHP开发规范](http://document.thinkphp.cn/manual_3_2.html#develop_standard) 1。**普通变量**采用小写字母,多单词以“`_`”连接,例如:`$base_dir`、`$red_rose_price`等。 2。**静态变量**以“`s_`”开头,字母小写,多单词以“`_`”连接,例如:`$s_base_dir`、`$s_red_rose_prise`等。 3。**局部变量**以“`_`”开头,字母小写,多单词以“`_`”连接,例如:`$_base_dir`、`$_red_rose_price`等。 4。**全局变量**以“`G_`”开头,字母大写,多单词以“`_`”连接,知道一个变量的作用域是非常重要的。例如:`global $G_LOG_LEVEL`、`global $G_LOG_PATH`。 5。**session**以“`S_`”开头,字母大写,多单词以“`_`”连接,例子:`$S_BASE_DIR`、`$S_RED_ROSE_PRICE`等。 6。确保文件的命名和**调用大小写一致**,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写); 7。 **类**的声明按照“帕斯卡命名法”,例如:`class MyClass` 或 `class DbOracle`等。 8。**类文件**要求以`.class.php`为后缀,使用驼峰法命名,并且首字母大写,例如 `DbMysql.class.php`。 9。通常下划线开头的方法属于**私有方法**:`_parseType`。 10。**方法**的命名使用“驼峰法”,或者使用下划线“_”连接,例如 `getUserName`。 11。**函数**的命名使用小写字母和下划线的方式,例如 `get_client_ip`。 12。**属性**的命名使用驼峰法,并且首字母小写或者使用下划线“`_`”,例如 `tableName`、`_instance`,通常下划线开头的属性属于**私有属性**; 以双下划线“`__`”打头的函数或方法作为**魔法方法**,例如 `__call` 和 `__autoload`。 13。**常量**以大写字母和下划线命名,例如 ``HAS_ONE``和 `MANY_TO_MANY`。 14。类的**命名空间**地址和所在的路径地址一致,例如`Home\Controller\UserController`类所在的路径应该是`Application/Home/Controller/UserController.class.php`。 15。**配置参数**以大写字母和下划线命名,例如`HTML_CACHE_ON`。 16。**语言变量**以大写字母和下划线命名,例如`MY_LANG`。以下划线打头的语言变量通常用于**系统语言变量**,例如 `_CLASS_NOT_EXIST_`, 没有强制的规范,可以根据团队规范来进行。 17。**类名和文件名一致**(包括上面说的大小写一致),程序中所有的类名唯一,例如`UserController`类的文件命名是`UserController.class.php`, ``InfoModel``类的文件名是`InfoModel.class.php`, 并且不同的类库的类命名有一定的规范。 ~~~ //类统一采用:DemoTest.class.php //接口统一采用:DemoTest.interface.php //其他按照各自的方式:demoTest.{style}.php ~~~ 18。**数据表和字段**采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。 19。确保文件的命名和调用大小写一致,是由于在**类Unix系统上面,对大小写是敏感的**; 20。**PHP关键词**及系统函数全部小写,`false/true/null`也全部小写。 21。所有的PHP程序**代码块标记**均使用`<?php`,(短标签容易和xml混淆,php从5.4开始默认不支持短标记)。 22。对于只有php的代码文件,建议省略结尾处的‘`?>`’。这是为了防止多余的空格或其他字符影响到代码。 23、**抽象类**应以Abstract开头。 24。**接口**命名规则: i)采用和类相同的命名规则,但在其命名前加‘`i`’字符,表示接口。如:iDataBase。 ii)尽量保持和实现它的类名一致。 接口文件可使用“iDatabase.interface.php”命名。 **25、程序中所有类名唯一。**
';