【问题标题】:phpcs: detecting old style constructorsphpcs:检测旧式构造函数
【发布时间】:2017-05-03 15:40:19
【问题描述】:

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

如人们所料,旧代码略显凌乱。还有大量的 PHP4 构造函数:

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

此外,还有多个文件,每个文件都声明了多个类。当然,其中只有程序代码的文件(许多带有定义,以及 一些有实际工作发生在他们身上)。

我想使用phpcs 仅针对以下内容生成报告:

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

然后忽略其他所有内容。

有没有一些标准的sniffs我可以用来做这个?或者声明一个自定义规则集来检查这个的方法?

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

【问题讨论】:

    标签: php refactoring phpcs


    【解决方案1】:

    终于找到了here,我可以用这个来寻找老式的构造函数:

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

    另外,我找到了 PhpCS here 的标准生成器。

    【讨论】:

      【解决方案2】:

      您也可以使用“no_php4_constructor”修复程序 PHP-CS-Fixer

      如何使用?

      安装包

      composer require friendsofphp/php-cs-fixer
      

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

      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
      

      就是这样。享受美好的一天!

      【讨论】:

        猜你喜欢
        • 2015-10-16
        • 2016-05-08
        • 2010-11-13
        • 2016-04-06
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 2010-09-26
        相关资源
        最近更新 更多