Magento 2.3.1 – Fix Uncaught Error: Class ‘PHP_CodeSniffer\Runner’ Not Found

coding-standardsmagento2.3.1

I have faced issue in "vendor/bin/phpcbf" command for resolving custom extension coding standard.

I am using Magento ver.2.3.1

Running command in project root:

vendor/bin/phpcbf "app/code/Namespace/MyModule"

But while running command through below error:

PHP Fatal error: Uncaught Error: Class 'PHP_CodeSniffer\Runner' not
found in /var/www/html/magento/vendor/bin/phpcbf:17 Stack trace:

0 {main} thrown in /var/www/html/magento/vendor/bin/phpcbf on line 17

Any help would be appreciated. Thanks.

Best Answer

Inside project

Install

composer require squizlabs/php_codesniffer:^3.4

// magento ruleset
composer require magento/magento-coding-standard

// auto ruleset installer – automatically pickup 'phpcodesniffer-standard' packages
composer require dealerdirect/phpcodesniffer-composer-installer

Usage

// should see Magento2 standard listed
vendor/bin/phpcs -i
vendor/bin/phpcbf -i

vendor/bin/phpcs --standard=Magento2 app/code/Xigen/Vehicle
vendor/bin/phpcbf --standard=Magento2 app/code/Xigen/Vehicle

vendor/bin/phpcs --standard=Magento2 app/code/Xigen/Data --report-file="Data.txt"
vendor/bin/phpcbf --standard=Magento2 app/code/Xigen/Data --report-file="Data.txt"