0

假设我有这些课程:

  • Old_Class
  • New_Class

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

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

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

如果是这样,我token应该在该register()功能中添加什么才能赶上?

4

1 回答 1

0

我不能使用内置的。我不得不用 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);
    }
}
于 2020-02-03T20:57:20.733 回答