简体   繁体   English

不鼓励的类使用 PHPCS

[英]Discouraged Class Usage PHPCS

Let's say I have these classes:假设我有这些课程:

  • Old_Class
  • New_Class

If this exists ->something(new Old_Class()) or Old_Class::staticMethod() or $oldClass->methodCall() I want a code sniff to warn "Old_Class usage found, recommend using New_Class instead".如果这存在->something(new Old_Class())Old_Class::staticMethod()$oldClass->methodCall()我想要一个代码嗅探来警告“发现 Old_Class 用法,建议改用 New_Class”。

I found this sniff Generic.PHP.ForbiddenFunctions but it only seems to catch built-in php functions is_array, is_null, etc .我发现这个嗅探Generic.PHP.ForbiddenFunctions但它似乎只能捕获内置的 php 函数is_array, is_null, etc

Do I need to write a custom sniff for this?我需要为此编写自定义嗅探吗?

If so, what token should I added to the register() function to catch on?如果是这样,我应该在register()函数中添加什么token来抓住?

I couldn't use a built-in one.我无法使用内置的。 I had to write one using T_STRING.我不得不用 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);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM