ERROR: Referenced sniff "SlevomatCodingStandard.ControlStructures.RequireNullCoalesceOperator" does not exist

  •  
 
kan に投稿

タグ

Drupalのコードチェックの時に、以下のエラーを遭遇して、対応方法を探すにはかなり時間がかかって、しかも日本語情報が少ないので、本記事で原因や対応方法などをまとめて共有します。

phpcs --standard=Drupal .
ERROR: Referenced sniff "SlevomatCodingStandard.ControlStructures.RequireNullCoalesceOperator" does not exist

事象

パッケージdrupal/coderの8.3.14から以下のエラーが発生しました。8.3.13まではOKです。

ERROR: Referenced sniff "SlevomatCodingStandard.ControlStructures.RequireNullCoalesceOperator" does not exist

パッケージのバージョン確認方法は

$ composer global info
Changed current directory to /Users/kan/.composer
dealerdirect/phpcodesniffer-composer-installer v0.7.2  PHP_CodeSniffer Standards Composer Installer Plugin
drupal/coder                                   8.3.16  Coder is a library to review Drupal code.
phpstan/phpdoc-parser                          1.2.0   PHPDoc parser with support for nullable, intersection and generic types
sirbrillig/phpcs-variable-analysis             v2.11.8 A PHPCS sniff to detect problems with variables.
slevomat/coding-standard                       7.0.20  Slevomat Coding Standard for PHP_CodeSniffer complements Consistence C...
squizlabs/php_codesniffer                      3.7.1   PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects vi...
symfony/polyfill-ctype                         v1.26.0 Symfony polyfill for ctype functions
symfony/yaml                                   v4.4.45 Loads and dumps YAML files

原因

記事 https://www.drupal.org/project/coder/issues/3262291 により、phpcs installed_pathsの不備らしいです。

phpcs installed_pathsの確認方法は、

$ phpcs --config-show installed_paths
Using config file: /Applications/DevDesktop/tools/vendor/squizlabs/php_codesniffer/CodeSniffer.conf

installed_paths: /Users/kan/.composer/vendor/drupal/coder/coder_sniffer

対応方法

installed_pathsにパッケージ/sirbrillig/phpcs-variable-analysisと/slevomat/coding-standardを追加します。

追加方法は、

$ phpcs --config-set installed_paths /Users/kan/.composer/vendor/drupal/coder/coder_sniffer,/Users/kan/.composer/vendor/sirbrillig/phpcs-variable-analysis,/Users/kan/.composer/vendor/slevomat/coding-standard

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。