PSR-PHP 中的基本编码标准

PSR(PHP Standards Recommendations)是 PHP 开发中的一系列编码标准和规范,旨在提高 PHP 代码的可读性、可维护性和互操作性。以下是 PSR 中一些基本的编码标准:

PSR-1:基本代码规范

  • 文件结构
    • PHP 标签:PHP 文件应使用<?php?>标签包围 PHP 代码,在 PHP 文件中,尽量避免使用短标签<??>,以确保代码在不同服务器配置下的兼容性。
    • 字符编码:PHP 文件必须使用 UTF-8 编码,且不包含 BOM(Byte Order Mark)。
    • 文件类型:PHP 文件可以是纯 PHP 代码文件,也可以是包含 HTML 和 PHP 代码的混合文件。纯 PHP 代码文件应只包含 PHP 代码,不包含任何非 PHP 的内容,如 HTML、CSS 或 JavaScript。
  • 命名空间和类名
    • 命名空间:PHP 代码应使用命名空间来组织代码结构,避免命名冲突。命名空间的定义应符合 PHP 的命名空间规范,并且应在文件的顶部声明。
    • 类名:类名应采用驼峰命名法(CamelCase),并且首字母大写。类名应与文件名相对应,即类名所在的文件应使用与类名相同的名称,并以.php为扩展名。
  • 函数和变量命名
    • 函数名:函数名应采用小写字母和下划线分隔的方式命名,例如function_name()。函数名应具有描述性,能够清晰地表达函数的功能。
    • 变量名:变量名应采用小写字母和下划线分隔的方式命名,例如$variable_name。变量名也应具有描述性,能够清晰地表达变量的用途。

PSR-2:编码风格规范

  • 缩进:代码应使用 4 个空格进行缩进,不使用制表符(Tab)进行缩进。这样可以确保在不同的开发环境中代码的缩进显示一致。
  • 行长度:每行代码的长度应尽量不超过 80 个字符。如果一行代码过长,可以使用 PHP 的换行符\或者适当的代码结构进行换行,以提高代码的可读性。
  • 类的结构
    • 类定义:类的定义应包括类名、命名空间、继承关系和实现的接口等信息。类名应在命名空间之后声明,并且类名与命名空间之间应使用\分隔。
    • 类的属性和方法:类的属性和方法应按照一定的顺序进行排列。通常,属性应在方法之前声明,并且属性和方法应根据其访问权限(public、protected、private)进行分组。
  • 方法的结构
    • 方法定义:方法的定义应包括方法名、参数列表、返回类型(如果有)和方法体。方法名应采用驼峰命名法,参数列表应使用括号括起来,参数之间用逗号分隔。
    • 方法参数:方法的参数应尽量避免使用默认值,如果需要使用默认值,应在参数列表中明确指定。参数的命名应具有描述性,能够清晰地表达参数的用途。

PSR-4:自动加载规范

  • 命名空间与目录结构映射:PSR-4 规定了命名空间与文件系统目录结构之间的映射关系。命名空间的前缀应对应于文件系统中的目录路径,例如,命名空间MyNamespace\对应的目录可能是./src/MyNamespace/
  • 类名与文件名映射:类名应与文件名相对应,类名中的驼峰命名法部分应与文件名中的单词相对应,例如,类MyClass应位于文件MyClass.php中。