Reputation: 841
I am facing this issue in Visual Studio Code. I have already tried reinstalling the phpcs extension but still facing this issue.
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
Upvotes: 68
Views: 131428
Reputation: 4780
open the project in the terminal and run this command
composer global require squizlabs/php_codesniffer
Upvotes: 31
Reputation: 1622
I had the same issue, I did the following to fix it:
Install the phpcs by using composer with composer global require squizlabs/php_codesniffer
Press Command + ,
(Click Code -> Preferences -> Settings)
Select User Settings and locate 'PHP CodeSniffer
'
Scroll to 'Executable Path
' and put
/Users/your-username/.composer/vendor/bin/phpcs
Upvotes: 119
Reputation: 387
Adding to the top answer, in my case (Windows 10), the composer located at:
C:\Users\user-name\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\bin
Upvotes: 0
Reputation: 146
For anyone else still struggling with this on Windows 11, I had to put double backslashes in the path, and link to the *.bat
file instead (for both phpcs and phpcbf), in settings.json
:
C:\\Users\\user-name\\AppData\\Roaming\\Composer\\vendor\\squizlabs\\php_codesniffer\\bin\\phpcs.bat
I had run all the global installation commands, etc, as described by all the other comments but still no joy in VS Code. I also tried without the phpcs filename (ie, just ending in \\bin
), and ending in phpcs without the file extension, but those didn't work. I had also set the PATH to phpcs and phpcbf in my environment variables.
Upvotes: 2
Reputation: 1
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.
Upvotes: 0
Reputation: 31
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:
Download Composer for Windows 10 Here
Install Composer on Windows 10
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)
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
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
Now phpcs should work fine after installing the extension!
Upvotes: 1
Reputation: 35
I had the same problem and i did this to fix it in my windows:
You will Download the Composer (From here)
Go to Vs code and open your terminal and run this command
composer global require squizlabs/php_codesniffer
Go to (settings--> User Settings), then search PHP CodeSniffer
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
Upvotes: 3
Reputation: 11
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!
Upvotes: 1
Reputation: 1
"phpcs.standard": "PSR2",
"phpcs.enable": true,
"phpcs.executablePath": "/home/<username>/.config/composer/vendor/squizlabs/php_codesniffer/bin/phpcs",
"phpcs.autoConfigSearch": true
Upvotes: 0
Reputation: 6534
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
Or you can set the path directly in your settings.json
"phpcs.executablePath": "./vendor/squizlabs/php_codesniffer/bin/phpcs"
Upvotes: 10
Reputation: 161
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.
Upvotes: 8
Reputation: 165
I had the same problem with Drupal, the solutions is specify coding standards. So create phpcs.xml and enable the next options.
Upvotes: 0
Reputation: 3252
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)
Upvotes: 1
Reputation: 21
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.
Upvotes: 2
Reputation: 151
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.
- Install Composer from this resource if you don't have it,
After Composer is installed, open a command prompt wherever you want and run this command
composer global require squizlabs/php_codesniffer
Upvotes: 9
Reputation: 2506
On Debian based systems run as root:
apt-get install php-codesniffer
Upvotes: 15
Reputation: 2182
You stated that you already uninstalled it, so i'm assuming your trying to get rid of the extension and error.
How to fix:
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
Upvotes: -1
Reputation: 507
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.
Upvotes: 0
Reputation: 375
I think uninstalling it does not solve the issue.
i had the same issue. So,
it resolved the issue in my VS code.
Upvotes: 15