My TestMyClass.php在同一个文件(单元测试类)中有两个类定义,PHP代码嗅探器抱怨大约each class must be in a file by itself个.我怎样才能 suppress 这个警告?

class MyClassImpl implements MyInterface
{
    // ...
}

class MyClassTest extends \PHPUnit_Framework_TestCase
{
    // ...
}

推荐答案

您可以使用注释https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-files-and-folders让PHP_CodeSniffer忽略文件中的特定文件或行

在这种情况下,将在第二个类定义上生成错误,因此您必须这样编写第二个定义:

// @codingStandardsIgnoreStart
class MyClassTest extends \PHPUnit_Framework_TestCase
{
    // @codingStandardsIgnoreEnd
    // ...
}

但是,如果不应该判断整个文件,也可以 Select 忽略整个文件,要么使用@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

Php相关问答推荐

使用DOMPDF生成PDF,但我的自定义字体无法识别

仅显示特定WooCommerce产品类别的额外产品字段

如何在Woocommerce中禁用机器人添加到推车?

编写WooCommerce多步骤签出

LaravelEloquent 的地方条件父/子与第三模型多对多

Laravel 10 -扩展现有的artisan命令?

通过访问单个产品页面更新WooCommerce产品元数据

我有一个显示记录的表格,每行在最右边有两个按钮.如何才能以正确的顺序获得表的值?

未收到Strava WebHook事件数据

使用随机生成器在MYSQL中创建唯一ID-定义一个数组来存储已知ID是否安全

Regex:高级删除单行PHP注释

登录后重定向在WooCommerce中购买产品的用户

从WooCommerce管理订单汇总中隐藏原始小计行

ANTLR4-lexer如何消耗更多的 token 并停止现有规则?

向元素添加类时添加循环错误

根据页面的最后修订日期设置 MediaWiki 内部链接的样式

自定义主键值未正确显示

如何通过额外的属性和本地化来使用 laravel 枚举

MySQLI bind_param导致的Cannot modify readonly property错误

为什么在 phpunit 的开头测试 PHP_VERSION?