48
votes

I am facing this issue in Visual Studio Code. I have already tried reinstalling the phpcs extension but still facing this issue.

this is the image

Unable to locate phpcs

Please add phpcs to your global path or use the composer dependency manager to install it in your project locally in Visual studio Code

15

15 Answers

80
votes

I had the same issue, I did the following to fix it:

  1. Install the phpcs by using composer with composer global require squizlabs/php_codesniffer

  2. Press Command + , (Click Code -> Preferences -> Settings)

  3. Select User Settings and locate 'PHP CodeSniffer'
  4. Scroll to 'Executatble Path' and put

    /Users/your-username/.composer/vendor/bin/phpcs

This fixed the issue for me, I hope it does for you too. Cheers!

28
votes

open the project in the terminal and run this command

composer global require squizlabs/php_codesniffer

Hope that helps!

17
votes

I think uninstalling it does not solve the issue.

i had the same issue. So,

  1. Go to extensions and install the plugin...."phpcs".
  2. Search for the extension if you had install it.
  3. Disable the extension.

it resolved the issue in my VS code.

15
votes

On Debian based systems run as root:

apt-get install php-codesniffer
10
votes

From a GitHub comment.

If someone still needs help about this "Unable to locate phpcs ..." error message, try this: you just need to install phpcs globally via Composer.

  1. Install Composer from this resource if you don't have it,
  2. After Composer is installed, open a command prompt wherever you want and run this command

    composer global require squizlabs/php_codesniffer
    
7
votes

In my case and in Windows 10, composer located at:

C:\Users\{user_name}\AppData\Roaming\Composer\vendor\bin\

and when i added this to VSCode settings at PHP CodeSniffer section this solve my problem.

6
votes

My solution without the need to install php_codesniffer globally.

Just go to VSCode settings and define the local path ./vendor/squizlabs/php_codesniffer/bin/phpcs

enter image description here

Or you can set the path directly in your settings.json

"phpcs.executablePath": "./vendor/squizlabs/php_codesniffer/bin/phpcs"
2
votes

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.

2
votes

Install PHP Sniffer instead of phpcs

PHP Sniffer worked on the fly without any extra configuration

phpcs could not recognize my commands, despite a configured PATH, Composer & PHPCS installed.

The commands were recognized in the terminal, but not by the plugin (under windows 10)

2
votes

I had the same problem and i did this to fix it in my windows:

  1. You will Download the Composer (From here)

  2. Go to Vs code and open your terminal and run this command

    composer global require squizlabs/php_codesniffer
    
  3. Go to (settings--> User Settings), then search PHP CodeSniffer

  4. Scroll to Executatble Path and type

    \Users\{user_name}\AppData\Roaming\Composer\vendor\bin\phpcs
    

    and restart VS code.

This works For me, I hope it Works for you too :D

0
votes

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.

0
votes

I had the same problem with Drupal, the solutions is specify coding standards. So create phpcs.xml and enable the next options.

enter image description here

0
votes
"phpcs.standard": "PSR2",
"phpcs.enable": true,
"phpcs.executablePath": "/home/<username>/.config/composer/vendor/squizlabs/php_codesniffer/bin/phpcs",
"phpcs.autoConfigSearch": true
0
votes

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!

-1
votes

You stated that you already uninstalled it, so i'm assuming your trying to get rid of the extension and error.

How to fix:

  1. Uninstall extension.
  2. Delete the entire phpcs folder from the VS Code folder.

From the VS Code Docs:

Q: Where are extensions installed?

A: Depending on your platform, the global location is in the following folders:

Windows %USERPROFILE%\.vscode\extensions

Mac ~/.vscode/extensions

Linux ~/.vscode/extensions