1

我必须使用一个非常大的代码库,该代码库在过去 11 年中一直在持续开发,维护级别各不相同。

正如人们所期望的那样,较旧的代码有点混乱。周围有大量的 PHP4 构造函数:

class Foo {
    private $thing;
    public function Foo($thing) {
       $this->thing = $thing;
    }
 }

此外,还有多个文件,每个文件都声明了多个类。当然,其中只有程序代码的文件(许多带有定义,有些带有实际工作)。

我想使用phpcs仅针对以下内容运行报告:

  • 声明了一个类,并且有一个旧式构造函数
    • 如果我们可以跳过那些也声明了 __construct() 的地方,则可以加分。
  • 声明了多个类

并忽略其他一切。

我可以使用一些标准的嗅探器来做到这一点吗?或者一种声明自定义规则集来检查这一点的方法?

一个额外的奖励点:检测那些定义了类的文件,并且在类之外有代码。

4

2 回答 2

1

终于在这里发现我可以使用这个寻找旧式构造函数:

phpcs --standard=Squiz --extensions=php --sniffs=Generic.NamingConventions.ConstructorName .

另外,我在这里找到了 PhpCS 的标准生成器。

于 2016-11-17T16:04:39.133 回答
1

您还可以使用PHP-CS-Fixer中的“no_php4_constructor” 修复程序 在此处输入图像描述

如何使用它?

安装包

composer require friendsofphp/php-cs-fixer

--dry-run --diff使用onsrc目录运行预览命令

vendor/bin/php-cs-fixer fix src --rules=no_php4_constructor --allow-risky=yes --dry-run --diff

在此处输入图像描述

src在目录上运行命令

vendor/bin/php-cs-fixer fix src --rules=no_php4_constructor --allow-risky=yes

就这样。享受这一天!

于 2017-05-02T20:19:41.753 回答