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