【问题标题】:Discouraged Class Usage PHPCS不鼓励类使用 PHPCS
【发布时间】:2020-02-03 19:11:46
【问题描述】:

假设我有这些课程:

  • Old_Class
  • New_Class

如果存在 ->something(new Old_Class())Old_Class::staticMethod()$oldClass->methodCall() 我想要代码嗅探以警告“发现旧类用法,建议改用新类”。

我发现了这个嗅探Generic.PHP.ForbiddenFunctions,但它似乎只捕捉到内置的php函数is_array, is_null, etc

我需要为此编写自定义嗅探吗?

如果是这样,我应该在register() 函数中添加什么token 才能流行起来?

【问题讨论】:

    标签: codesniffer phpcs phpcodesniffer


    【解决方案1】:

    我不能使用内置的。我必须用 T_STRING 写一个。

    public function register()
    {
        return [
            T_STRING,
        ];
    }
    
    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
    {
        $tokens = $phpcsFile->getTokens();
    
        if ($tokens[$stackPtr]['content'] === 'Old_Class') {
            $error = 'Old_Class usage found, consider using New_Class instead.';
            $phpcsFile->addWarning($error, $stackPtr);
        }
    }
    

    【讨论】:

    • 这个解决方案不考虑Old_Class的子类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 2019-08-22
    相关资源
    最近更新 更多