我正在用PHP_CodeSniffer编写一个嗅探来检查类名,并且我的抽象类名与非抽象类有一些不同的命名要求。
如何识别当前嗅探是否在嗅探抽象类?
发布于 2015-03-10 01:26:45
感谢zerkms为我指明了正确的方向。
若要检查当前嗅探是否正在读取abstract或final类,请使用以下代码:
if (in_array(
$tokens[($stackPtr - 2)]['code'],
array(T_ABSTRACT, T_FINAL)
) === true
) {
// TRUE - class is abstract or final
} else {
// FALSE - class is NOT abstract or final
}删除任何一个T_ABSTRACT T_FINAL都会删除该类型的检查。
也就是说,如果没有上面代码中的T_ABSTRACT,它将返回abstract类的FALSE,对于final类仍然是正确的。
您还需要该类中的以下代码,以便上面的代码能够工作:
$tokens = $phpcsFile->getTokens();我已经测试了上面的代码,它的工作方式正如我在这个答案中所概述的那样。
由于PHP_CodeSniffer目前在互联网上的信息有限,希望这能帮助到其他人。
请随意建议编辑或编辑此答案。
https://stackoverflow.com/questions/28951495
复制相似问题