我的TestMyClass.php
在同一個文件(單元測試類)中有兩個類定義,PHP代碼嗅探器抱怨每個類都必須在文件本身。我怎樣才能壓制這個警告?如何使用註釋來抑制PHPCS警告?
class MyClassImpl implements MyInterface
{
// ...
}
class MyClassTest extends \PHPUnit_Framework_TestCase
{
// ...
}
我的TestMyClass.php
在同一個文件(單元測試類)中有兩個類定義,PHP代碼嗅探器抱怨每個類都必須在文件本身。我怎樣才能壓制這個警告?如何使用註釋來抑制PHPCS警告?
class MyClassImpl implements MyInterface
{
// ...
}
class MyClassTest extends \PHPUnit_Framework_TestCase
{
// ...
}
你可以使用PHP_CodeSniffer評論忽略文件中的特定文件或線路:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-files-and-folders
在這種情況下,將在你的第二個類定義生成錯誤,所以你必須寫你第二個定義是這樣的:
// @codingStandardsIgnoreStart
class MyClassTest extends \PHPUnit_Framework_TestCase
{
// @codingStandardsIgnoreEnd
// ...
}
但你也可能選擇忽略整個文件,如果認爲不需要進行檢查,無論是使用@codingStandardsIgnoreFile評論或在命令行上指定排除(見以前的墨水的信息)。
如果您發現自己做了很多,而且您不想向代碼添加註釋,那麼您也可以創建自己的自定義編碼標準。假設你正在使用的PSR2標準,現在,你會創建一個XML文件(例如,mystandard.xml),幷包括以下內容:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="PSR2" />
<rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses">
<severity>0</severity>
</rule>
</ruleset>
然後運行PHP_CodeSniffer這樣的:phpcs --standard=/path/to/mystandard.xml /path/to/code
有您自己的規則集允許您執行許多操作,包括更改錯誤消息,更改消息的嚴重程度或類型(包括其他標準的檢查)以及設置全局忽略規則。更多信息:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
+1跳過測試文件。或者,也許你可以對這些使用[PHPUnitStandard](https://github.com/elblinkin/PHPUnit-CodeSniffer):-) – cmbuckley
從[documentation](https://github.com/squizlabs/PHP_CodeSniffer/wiki/高級用法#忽略文件和文件夾):您也可以使用@ codingStandardsIgnoreLine註釋忽略單個行。此評論將忽略評論所在的行,以及以下行。 – JSmitty