php开发规范

一、文件格式

  1. 对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>"
  2. 缩进应该能够反映出代码的逻辑结果,尽量使用四个空格,禁止使用制表符TAB
  3. 每行代码长度应控制在80个字符以内,最长不超过120个字
  4. 每行结尾不允许有多余的空格

二、命名约定

  1. 类文件都是以“.class.php“为后缀,且类文件名只允许字母,使用驼峰法命名,并且首字母大写,例如:DbMysql.class.php
  2. 配置和函数等其他类库文件之外的文件一般是分别以“.inc.php“和”.php“为后缀,且文件名命名使用小写字母和下划线的方式,多个单词之间以下 划线分隔,例如config.inc.php , common.php,install_function.php
  3. 确保文件的命名和调用大小写一致,类名和文件名一致
  4. 方法的命名使用驼峰法,并且首字母小写或者使用下划线"_",以"_"开头的方法为私有方法
  5. 属性的命名使用驼峰法,并且首字母小写或者使用下划线"_",以"_"开头的属性为私有属性
  6. 对于对象成员的访问,我们必须始终使用 “get” 和 “set” 方法
  7. 函数的命名使用小写字母和下划线的方式
  8. 变量只允许由小写字母和下划线组成
  9. boolean 值和 null 值都采用小写
  10. 常量以大写字母和下划线命名
  11. 配置参数以大写字母和下划线命名

三、编码风格

  1. php 代码必须以完整的形式来定界(< ?php … ?>),即不要使用php 短标签(< ? … ?>)
  2. 当一个字符串是纯文本组成的时候(即不含有变量),则必须总是以单引号(')作为定界
  3. 变量替换中的变量只允许用 $+变量名 的形式。例如: $greeting = "Hello $name, welcome back!"; // 允许 $greeting = "Hello {$name}, welcome back!"; // 允许 $greeting = "Hello ${name}, welcome back!"; // 不允许
  4. 当使用 array 类型符声明关联数组的时候,在每个逗号的后面间隔空格以提高可读性.我们鼓励把它分成多个行,只是我们必须同时保证每行的键与值的对齐,以保持美观
  5. 大括号的开始必须在类名的同一行
  6. 类中的所有代码都必须用四个空格来进行缩进
  7. 在 "switch" 语句中应该总是包括 "default" 控制
  8. 任何类变量的声明都必须放在类顶部,先于任何函数的声明
  9. 不允许用 var 符号来声明变量,类成员变量必须以 private,protected 和 public 来声明
  10. 方法必须总是用 private,protected 或者 public 来声明其作用域
  11. 静态 static 方法应该声明其作用域,且不应该再被声明为 private 私有,而应该为 protected 或者public ,如果只是不想被子类继承,则应该用 final 声明它们
  12. 函数或方法的初始大括号应该在函数声明的同一行
  13. 引用只允许定义在函数参数中,实时传递引用是禁止的。例如:
    // 引用定义在函数参数-允许的 function defineRefInMethod(&$a){ $a = 'a'; } defineRefInMethod($b); echo $b; // 'a' // 实时传递引用-禁止的 function callTimePassRef($a){ $a = 'a'; } callTimePassRef(&$c); echo $c; // 'a' 
  14. 函数或方法返回值不可以用括号包住,不然会降低可读性,而且假如以后函数修改为返回引用的话,这将会抛出一个异常
  15. 鼓励尽量使用类型提示,特别是在模块设计中。例如:
    class Foo{ public function foo(SomeInterface $object){} public function bar(array $options){} } 
  16. 在条件控制语句的条件括号内,必须用空格将操作符与其它元素隔开。如果遇到很长的逻辑判断,则鼓励用内嵌括号来分割各个逻辑
  17. 有时候我们需要在 "case" 语境中省略掉 "break" 或 "return" ,这个时候我们必须为这些 "case" 语句加上 "// 此处无break" 注释
  18. 每个包含 PHP 代码的文件必须至少在文件顶部的 docblock 包含这些 phpDocumentor 标签
    /** * 文件的简短描述 * 文件的详细描述(如果有的话)... ... * * @file file_name * @author name * @data date * */ 
  19. 每个类必须至少包含这些 phpDocumentor 标签
    /** * 类的简述 * 类的详细描述 (如果有的话)... ... */ 
  20. 每个函数,包括对象方法,必须有最少包含下列内容的文档块(docblock):
    /** * 函数的描述 * 所有参数 * 所有可能的返回值 */ 

你可能感兴趣的:(php开发规范)