devbeta / psr12-strict-rules
PSR-12 严格编码规范
1.0.3
2021-10-30 15:28 UTC
Requires
- php: ^8.0
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- squizlabs/php_codesniffer: ^3.6
README
本规范扩展并扩展了 PSR-12,扩展的编码风格指南并要求遵循 PSR-1,基本编码规范。
贡献者有不同的编码风格,维护者也是如此。在代码审查期间,经常就空格和对齐进行讨论,讨论在哪里以及何时需要导入一个函数。这正是这个编码规范的作用:在组件内部以及组件之间保持内部一致性。
安装
通过运行以下命令使用 composer 安装模块
composer require --dev devbeta/psr12-strict-rules
用法
在您的存储库的基本路径上创建文件 phpcs.xml,内容如下
<?xml version="1.0" encoding="UTF-8"?> <ruleset name="Coding standard" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd"> <description>PSR-12 strict coding standard</description> <arg name="colors"/> <arg name="cache" value=".phpcs.json"/> <arg name="extensions" value="php"/> <arg name="parallel" value="80"/> <arg value="p"/> <rule ref="PSR12-Strict-Rules"/> <file>config</file> <file>src</file> <file>tests</file> </ruleset>
您可以在该文件中添加或排除某些位置。有关参考,请参阅: Annotated Ruleset
编码风格指南
基本编码规范
- 代码必须遵循 PSR-12 中概述的所有规则。
数组
- 多行数组中的所有值必须使用 4 个空格缩进。
- 必须使用简短数组语法来定义数组。
类
- 不允许有重复的类名。
- 检查类的声明及其继承是否正确。
- 文件名必须与终止类名的大小写匹配。
- 对于自我引用,必须使用没有空格的
self::(小写)而不带空格的域解析运算符。
代码分析
- 在最终类中必须省略方法的 final 关键字。
- 检测出不必要的重写方法,这些方法只是调用它们的父方法。
控制结构
- 验证控制语句是否遵守其编码规范。
- 确保多行
if条件被正确定义。
格式化
- 类型转换运算符之后必须有一个空格。
- 一元非运算符之后必须有一个空格。
- 如果赋值跨越两行,请确保等号缩进。
函数
- 确保单行和多行函数声明被正确定义。
度量
- 检查函数的循环复杂度(McCabe)。
- 检查方法的嵌套级别。
命名约定
- 检查抽象类是否以 Abstract 前缀。
- 确保方法和函数的命名正确。
- 检查接口是否以 Interface 后缀。
- 检查 traits 是否以 Trait 后缀。
运算符
- 应使用
&&和||运算符而不是and和or。
PHP
- 不允许使用反引号运算符。
- 应避免使用已弃用的 PHP 函数。
- 不应使用 PHP
goto语言结构。 - 不应使用别名函数。
- 当遇到任何以倒置符号开头的代码时,抛出错误或警告。
- 检查是否已声明
strict_types。 - 应使用常量
PHP_SAPI而不是php_sapi_name()函数。 - 不允许使用
global关键字。 - PHP 函数调用必须使用小写。
- 必须删除非执行代码。
作用域
- 在静态方法或函数内部不得调用伪变量
$this。
字符串
- 检查两个字符串是否未连接在一起;建议使用一个字符串。
- 确保连接操作符周围没有空格。
空白字符
- 检查并修复任意括号内的空白字符。
- 验证扩展操作符与它应用的变量/函数调用之间的间距。
- 检查对象操作符是否正确缩进。
- 检查作用域的结束花括号是否正确对齐。
- 检查函数和方法之间的分隔。
- 语言结构之后必须有一个空格。
- 除非使用多行,否则对象操作符周围不得有任何空格。
- 验证类成员的间距是否正确。
- 确保对象操作符前后没有空白字符。
- 验证操作符周围是否有有效间距。
- 分号之前不得有空格。应避免冗余分号。