【问题标题】:How to exclude specific rule in a custom phpcs.xml ruleset?如何在自定义 phpcs.xml 规则集中排除特定规则?
【发布时间】:2018-12-20 23:42:04
【问题描述】:

我正在寻找一种自动化编码标准的方法,我决定在我们的 phpcs.xml 文件中使用SlevomatCodingStandard.TypeHints.TypeHintDeclaration。不幸的是,我们遇到了错误报告问题:

38 | ERROR | [ ] @var annotation of property | | \VC4A\ConvertUploadsToS3::$missing_local_files | | does not specify type hint for its items. 45 | ERROR | [ ] @var annotation of property | | \VC4A\ConvertUploadsToS3::$missing_s3_files does | | not specify type hint for its items. 52 | ERROR | [ ] @var annotation of property | | \VC4A\ConvertUploadsToS3::$updated_s3_links does | | not specify type hint for its items. 66 | ERROR | [ ] @var annotation of property | | \VC4A\ConvertUploadsToS3::$s3_settings does not | | specify type hint for its items. 112 | ERROR | [ ] Method \VC4A\ConvertUploadsToS3::setup_crons() | | does not have return type hint nor @return | | annotation for its return value. 149 | ERROR | [ ] @return annotation of method | | \VC4A\ConvertUploadsToS3::get_cron_actions() does | | not specify type hint for items of its traversable | | return value. 202 | ERROR | [ ] @return annotation of method | | \VC4A\ConvertUploadsToS3::get_cron_intervals() | | does not specify type hint for items of its | | traversable return value. 266 | ERROR | [ ] @param annotation of method | | \VC4A\ConvertUploadsToS3::error_reporting() does | | not specify type hint for items of its traversable | | parameter $uploads. 334 | ERROR | [ ] @param annotation of method | | \VC4A\ConvertUploadsToS3::update_s3_link() does | | not specify type hint for items of its traversable | | parameter $upload. 336 | ERROR | [x] Method \VC4A\ConvertUploadsToS3::update_s3_link() | | does not have void return type hint.

我只想为方法添加严格的返回类型,但对于我们使用 WordPress-Docs 标准的 DocBlocks。

有没有办法禁用除最后一个错误之外的其余错误?

我试过的是这样的:

<rule ref="SlevomatCodingStandard.TypeHints.TypeHintDeclaration"> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint"/> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.enableEachParameterAndReturnInspection"/> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.normalizedTraversableTypeHints"/> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.normalizedUsefulAnnotations"/> </rule>

显然这没有任何效果。有什么建议么 ?或者仅添加该特定规则的正确方法是什么?

或者是否有可能以其他方式做到这一点?只需在规则集中添加特定规则而不修改代码库?

【问题讨论】:

    标签: coding-style phpcs


    【解决方案1】:

    显然,我应该使用常量值而不是类数据成员名称:

    <!-- Strict type return for methods --> <rule ref="SlevomatCodingStandard.TypeHints.TypeHintDeclaration"> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingTraversableParameterTypeHintSpecification"/> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingTraversablePropertyTypeHintSpecification"/> <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingTraversableReturnTypeHintSpecification"/> </rule>

    来源: https://github.com/slevomat/coding-standard/issues/570#issuecomment-448647567

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2017-09-21
      • 1970-01-01
      • 2021-12-24
      相关资源
      最近更新 更多