I am facing this issue in Visual Studio Code. I have already tried reinstalling the phpcs extension but still facing this issue.
Unable to locat
I had the same issue on my Mac in Visual Studio Code (I used PEAR to install PHPCS). I do not know why but PHPCS couldn't find autoload.php of CodeSniffer. You can try to type on terminal command line:
$ phpcs
I got an error:
Warning: include_once(PHP/CodeSniffer/autoload.php): failed to open stream: No such file or directory in /Users/david/pear/bin/phpcs on line 14
Warning: include_once(): Failed opening 'PHP/CodeSniffer/autoload.php' for inclusion (include_path='.:') in /Users/david/pear/bin/phpcs on line 14
Solution:
Open Pear Bin folder in your user folder, e.g. in my case: /Users/david/pear/bin/
in Finder,
Find phpcs
file inside and edit it (e.g. in Visual Studio Code :),
You will find these lines there:
if (is_file(__DIR__.'/../autoload.php') === true) {
include_once __DIR__.'/../autoload.php';
} else {
include_once 'PHP/CodeSniffer/autoload.php';
}
Add two new lines there with the proper location of CodeSniffer/autoload.php file (place it before } else {
line and modify the path according to your needs - replace "david" with your user name...):
} else if (is_file('/users/david/pear/share/pear/PHP/CodeSniffer/autoload.php')) {
include_once '/users/david/pear/share/pear/PHP/CodeSniffer/autoload.php';
So the final code of the condition is:
if (is_file(__DIR__.'/../autoload.php') === true) {
include_once __DIR__.'/../autoload.php';
} else if (is_file('/users/david/pear/share/pear/PHP/CodeSniffer/autoload.php')) {
include_once '/users/david/pear/share/pear/PHP/CodeSniffer/autoload.php';
} else {
include_once 'PHP/CodeSniffer/autoload.php';
}
Then save it and restart Visual Studio Code. That's it.
I had this same error and I noticed that phpcs was working from the command line but not working in vscode. I had to read the linter.js file (of the vscode extension) to see where this error is coming from. This fix is more of an info.
So, to fix this: First, run the command phpcs --version
and check if the command does not print any warning or error before outputting a line similar to PHP_CodeSniffer version x.x.x (stable) by Squiz (HTTP://www.squiz.net)
.
If any error or warning (usually unrelated to phpcs) is thrown before the line showing the phpcs version, please go fix that warning or error first. According to linter.js, it expects that the first output (when phpcs.bat is executed) must start with the PHP_CodeSniffer version
string. Thus, If anything should print before the PHP_CodeSniffer version ...., then it throws the error.
So, You MUST fix any warning or error printed before the phpcs version if you want phpcs to work in VSCode. I hope this fix works for you. cheers!
paste the following in your terminal for system-wide installation
composer global require squizlabs/php_codesniffer
This stopped the error message from popping up in mine.