Visual Studio Code: Unable to locate phpcs

Viewed 109463

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

18 Answers

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!

On Debian based systems run as root:

apt-get install php-codesniffer

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
    

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"

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.

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

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.

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)

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

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

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!

I struggled with all these answers and I think it may be confusing to someone who is new to composer on Windows 10

This gives you better understanding of paths and Windows Environment Variables settings. However, it also includes installing php7 and integration with cakephp which you might want to skip and focus on (Composer and phpcs)

I found the fix at https://www.bravo-kernel.com/2017/03/installing-php7-composer-and-codesniffer-on-windows10-for-vscode/

And it had everything I needed to get phpcs working perfectly.

PROCEEDURE:

  1. Download Composer for Windows 10 Here

  2. Install Composer on Windows 10

  3. Open Command Prompt(cmd.exe) and type "composer" and hit the enter key (Just search the windows start for "cmd")

     Microsoft Windows [Version 10.0.19042.1165]
     (c) Microsoft Corporation. All rights reserved.
    
     C:\Users\systemuser>composer
    

If composer is properly installed you will get a response with something like this

       ______
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                /_/
    Composer version 2.1.5 2021-07-23 10:35:47

    Usage:
    command [options] [arguments]

    Options:
      -h, --help                     Display this help message
      -q, --quiet                    Do not output any message
      -V, --version                  Display this application version
      --ansi                     Force ANSI output
  --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
  --profile                  Display timing and memory usage information
  --no-plugins               Whether to disable plugins.
   -d, --working-dir=WORKING-DIR  If specified, use the given directory as 
    working directory.
    --no-cache                 Prevent use of the cache
   -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for 
    normal output, 2 for more verbose output and 3 for debug

    Available commands:
    (It continues)
  1. If you do not intend to change the default directory you can now install phpcs otherwise you can use instructions from the link above to set a new executable path. The default composer directory is

     C:/Users/systemuser/AppData/Roaming/Composer
    

Now in Command prompt add the following command (Global installation):

    composer global require squizlabs/php_codesniffer

Here is what it will look like:

    C:\Users\systemuser>composer global require squizlabs/php_codesniffer
    Changed current directory to C:/Users/systemuser/AppData/Roaming/Composer
    Using version ^3.6 for squizlabs/php_codesniffer
    ./composer.json has been updated
    Running composer update squizlabs/php_codesniffer
    Loading composer repositories with package information
    Updating dependencies
    Nothing to modify in lock file
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Nothing to install, update or remove
    Generating autoload files

    C:\Users\systemuser>

Note: Nothing installed because I already installed phpcs. Also you can see that composer switched to the default directory, if this doesn't happen you need to navigate to the appropriate directory with "cd newpath" before installing phpcs:

    C:\Users\systemuser>cd AppData\Roaming\Composer

The result is:

    C:\Users\systemuser\AppData\Roaming\Composer>

You have completed the installation so verify the app path by navigating the path

C:\Users\systemuser\AppData\Roaming\Composer\vendor\bin

Now you can copy the link to the phpcs file and paste in VSCode (If you changed your composer bin path then you need to copy the appropriate directory). It should look like this

    C:\Users\sytemuser\AppData\Roaming\Composer\vendor\bin\phpcs

C:\Users\systemuser\AppData\Roaming\Composer\vendor\bin\phpcs

Now phpcs should work fine after installing the extension!

According to the best answer

In my case(in Windows 10), the composer located at:

C:\Users\user-name\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\bin

Filling in the Executatble Path in VSCode settings for PHPCS will work if you have it installed through composer globally. You can also set it for individual project workspaces if you have a PHPCS configured for your project. To do that, create a workspace file through File->Save Workspace As and place this in your setting object:

"phpcs.enable": true,
"phpcs.standard": "WordPress", // or another standard
"phpcs.executablePath": "relative/path/to/vendor/bin/phpcs",
"phpcs.showWarnings": true,
"phpcs.composerJsonPath": "composer.json",
"phpcs.errorSeverity": 5,
"php.suggest.basic": true

Here is a link to a resource describing the process more in depth.

Related