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
- 閲覧数 437
 
    
コメントを追加