ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
**程序规范** 1、 命名中使用英文名称,杜绝使用拼音、英文首字母组合。 2、 命名空间、类命名定义采用英文首字母大写,如:UserInfo,接口采用:IUser 3、 页面空间命名使用开头3字母前缀。详细见附表: 4、 私有变量、局部变量采用首字母小写,后面的单词首字母大写,如:userName 5、 公共变量及属性采用单词首字母大写,如:UserName 6、 方法名称统一使用单词首字母大写,并使用动名词形式,如:SetUserName。方法中的参数采用私有变量的命名方式。 7、 if、while、for、foreach等语句即使后面只有一句逻辑,也要使用大括号。 8、 大括号“{”、“}”放在单独的行中。 9、 .cs文件开头需使用注释说明建立者,建立日期等注释。 ~~~ // ========================================== // Author:<AuthorName> // Create date: <Create Date> // Description: <Description> // ========================================== ~~~ 10、 类、方法、属性注释,采用标准注释。即连续打三个“/”开发环境自动生成注释框架。 11、 常量命名全部使用大写单词,单词之间使用下划线“_”连接。 12、 修饰符,如:public、protected、private等,在限定类或者方法的时候最小化作用范围。 13、在引用命名空间的时候,系统命名空间在上,自定义命名空间在下。系统和自定义命名空间之间留空行。 14、在引用类、函数、变量时不能使用完全限定名。(继承Page除外) 15、方法之间必须有空行隔开。 16、页面文件命名采用单词首字母大写,如:UserList.php其中页面推荐命名: 1. 列表页面使用类似XxxxxList.php方式命名。 2. 数据新增页面使用类似:XxxxxAdd.php方式命名。 3. 数据编辑页面使用类似:XxxxxEdit.php方式命名。 4. 统计界面使用类似:XxxxxStat.php方式命名。 5. 详细数据浏览使用类似:XxxxxInfo.php方式命名。 6. 综合查询功能页面使用类似:XxxxxSearch.php方式命名。 7. 如很多功能在一个页面当中实现,方法命名如上,除php文件名外方法名可采用小写如:userinfo(理论上:建议统一使用驼峰命名法则,如:UserInfo)。 8. 程序逻辑性较强的统一使用分段处理,重复使用的段落放置最上面或最下面。 9. 每段程序建议不超过200行,100行以下为最优。 注:英文全称存在简写的,可使用简写。如:Information可使用Info,Statistic可使用Stat。表示状态的Status使用全称。 尽量使用英文中原有的简写,不要自创简写。 **数据库命名** 1、 数据库表、视图、存储过程命名按照如下格式: 表:T_User 视图V_User 存储过程P_UserList 主键PK_UserId 外键FK_xxxxx 索引IX_LoginId 以后如果需要分级则采用类似命名:P_BBS_UserList 规则为开头简写大写字母加下划线加全称英文单词,英文单词首字母大写。 以上开头字母为暂定格式,正是项目格式待定。 2、 数据库语句中SQL关键字,系统默认参数、变量全部大写。 3、 多表交叉查询语句不使用表别名,使用完整的限定名。 4、 查询语句中的字段大小写于数据表设计时使用的大小写一样。 5、多表查询统一使用join关联查询语句,不建议使用查询一个foreach里嵌套一个。 **代码缩进** 1、使用Tab键来缩进,每个Tab键长度设置为4个空格; 2、程序当中不允许出现空格缩进; **关于代码行** 一行推荐的是最多写120个字符,多于这个字符就应该换行了,一般的编辑器是可以设置的。 **关键字 和 True/False/Null** PHP的关键字,必须小写,boolean值:**true,false,null** 也必须小写。 下面是PHP的“关键字”,必须小写: '__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor' **代码注释标签** 如 函数注释、变量注释等,常用标签有 @package、@var、@param、@return、@author、@todo、@throws 必须遵守 phpDocument 标签规则,不要另外去创造新的标签,更多标签查看 [phpDocument官网](https://phpdoc.org/docs/latest/references/phpdoc/tags/param.html) **业务模块** (1)、涉及到多个数据表 更新/添加 操作时,最外层建议要用事务,保证数据库操作的原子性; (2)、Model层,只做简单的数据表的增删改查; (3)、业务逻辑统一封装到 Logic层; (4)、控制器只做URL路由,不要当作 业务方法 调用; (5)、控制器层不能出现SQL操作语句,如 ThinkPHP框架的 where()、order() 等模型方法,即,控制器中,不要出现类似这样的SQL语句:D('XXX')->where()->order()->limit()->find(); where()、order()、limit() 等SQL方法只能出现在 Model层、业务层! **代码样式风格** 1、命名空间(Namespace) 和 导入(Use)声明 先简单文字描述下: 1、命名空间(namespace)的声明后面必须有一行空行; 2、所有的导入(use)声明必须放在命名空间(namespace)声明的下面; 3、一句声明中,必须只有一个导入(use)关键字; 4、在导入(use)声明代码块后面必须有一行空行; 用代码来说明下: ~~~ <?php namespace Lib\Databases; // 下面必须空格一行 use FooInterface; // use 必须在namespace 后面声明 use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; // 下面必须空格一行 class Mysql { } ~~~