lamansky/phpcs

这是一个具有偏见的PHP代码规范,主要目的是确保您的PHP代码在项目中的外观与其他语言尽可能相似。

安装: 10

依赖项: 6

建议者: 0

安全: 0

星级: 0

观察者: 2

分支: 0

开放问题: 0

类型:phpcodesniffer-standard

1.0.0 2020-08-10 16:42 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:51:21 UTC


README

使用PHP_CodeSniffer在您的PHP项目中强制执行一组编码风格规则。

亮点

此规范是PSR-1的超集,并添加了以下规则,以及其他一些规则

  • 必须用4个空格缩进,而不是制表符。
  • 开括号必须在同一行: class MyClass {
  • 不允许在if语句中分配变量(例如if ($var = get()) {)。
  • 不允许“Yoda”条件(例如if (true === $var) {)。
  • 不允许内联控制结构(总是需要花括号)。
  • 不允许分组use声明。
  • 所有方法和类常量都必须声明可见性。
  • 所有函数都必须声明返回类型。
  • 只能使用[]声明数组,而不是array()
  • 多行数组声明必须以逗号结尾。
  • 尽可能使用单引号字符串。

安装和使用

您不需要单独安装PHP_CodeSniffer。在安装此软件包时将自动安装。

在您的计算机上安装并初始化了用于您的PHP项目的Composer后,从项目根目录的终端运行此命令

composer require --dev lamansky/phpcs

然后,在项目目录中,添加一个名为phpcs.xml的文件,该文件包含以下XML代码。(用您项目的名称替换YourProject。)

<?xml version="1.0"?>
<ruleset name="YourProject">
  <rule ref="Lamansky"/>
</ruleset>

如果您使用的是Atom文本编辑器,请安装linterlinter-phpcs软件包,以便在编码时实时获取错误通知。

或者,您可以从项目目录的终端运行PHP_CodeSniffer来检查编码错误

./vendor/bin/phpcs . -pv --ignore=vendor --extensions=php

自定义规则

此规则集包含一些自定义规则,但主要导入其依赖项的规则。

如果您想排除一个规则,可以在Lamansky/ruleset.xml文件中找到它的ref ID,然后在项目的phpcs.xml文件中将其排除,方法是将ID放入exclude标签的name属性中,如下所示

<?xml version="1.0"?>
<ruleset name="YourProject">
  <rule ref="Lamansky">
    <exclude name="Lamansky.Functions.DeclarationSpace"/>
  </rule>
</ruleset>

一些规则有可更改的设置,您可以根据需要调整这些设置以微调规则的评估方式。这些设置作为控制各种规则的PHP类中的公共变量声明。以下是一个设置其中一个设置值的示例

<?xml version="1.0"?>
<ruleset name="YourProject">
  <rule ref="Lamansky"/>
  <rule ref="Lamansky.Functions.ReturnType">
    <properties>
      <property name="requireNativeDeclaration" value="true"/>
    </properties>
  </rule>
</ruleset>

自定义规则

大多数规则是从其他项目导入的,但也有一些规则是此项目独有的。

Lamansky.Functions.DeclarationSpace

在声明函数时,在函数名和参数列表之间强制执行一个空格: function abc (...)。这是一个视觉提示,有助于在浏览代码时区分函数声明和函数调用。

Lamansky.Functions.ReturnType

此规则执行以下三个功能

  • 要求每个函数必须声明返回类型(例如:function abc (...) : string)或者包含文档注释中的@return标签。
  • 如果函数返回null但未声明为可空返回类型(例如:?string),则会发出警告。
  • 即使函数具有void返回类型,也会警告函数返回了值。

如果您希望允许函数省略返回类型声明,但希望保留其他功能,请将allowUndeclaredReturnType属性设置为true

支持文档注释中的@return标签,用于PHP7的返回类型声明支持不够灵活的情况。如果您的项目仅支持PHP8或更高版本,则可以使用联合类型mixed关键字,可能不需要文档注释的回退。您可以通过将requireNativeDeclaration属性设置为true来禁用它。

相关