There isn’t an up-to-date article on installing PHP Code Sniffer PHPCS through Composer on your Mac, as there tends to be issues with doing so. It is also impossible to find one that worked for me, hence myself writing this article. This might be the same for you, and I hope that this article is useful. If not then contact me.
First off, we have to install composer. You can check the Composer website on how to do so.
Next, we have to install Homebrew. Again it’s best for me to reference the website as they will have the up-to-date instructions on the installation command.
Once we have both Composer and Homebrew installed, the next thing we want is to remove the PHP bundled with the Mac. Since this is a developers blog I reckon you are using PHP within an isolated environment, and not the Apple-supplied one.
You can find a good article on how to remove the Apple-supplied PHP here, testerlogic.com has a good set of instructions to remove the apple-supplied PHP installation.
Or you can follow by running the below commands and instructions:
xcode-select --install brew update brew upgrade brew cleanup brew doctor
What we’re doing here is installing xcode in case it isn’t installed yet, and we are performing brew checks to make sure everything is alright.
Next, you will want to check if anything pops up on here. If there are, then identify what programs are running these PHP scripts as we will have to close those programs.
ps ax | grep php
This is checking the processes have any mention of
php and listing them, if so.
If there is nothing that shows up after executing the above command, let’s continue.
brew cleanup brew doctor brew install php hash -r
The code above does the brew checks again, and also installs PHP within Homebrew. Afterwards we run the last command to refresh zsh’s internal paths.
Now we have to follow what brew doctor says, usually it will come up with an error and say you need to overwrite some files:
brew link --force --overwrite php brew doctor php -v
This will re-link the Homebrew PHP and check to remove the link of the Apple-supplied PHP, which we no longer want (since Apple is using it for legacy apps). We then check brew doctor to make sure everything is okay, and to finalise we check the php command for its version.
The next phase of this article is to install PHPCS. What may be happening in your case (if it’s the same as mine) was that PHPCS command cannot be found, as we still have to add the global composer to your
$PATH variable. Execute the following commands below:
If you’re finding trouble saving this on the nano editor interface, use the shortcut Ctrl+X and then press Y for yes.
And on a new line, add the following code:
Save the file, close it, and get back onto the terminal with the following command:
This will refresh the
.zshrc for your current terminal window.
And now let’s install PHP Codesniffer within the global Composer (system-wide):
composer global require squizlabs/php_codesniffer
Check it is working by running the code:
You should get the following:
This completes the installation process. Note that
$USERNAME will be your own machine’s username.
You may realise that you might have installed the latest PHP version, but you would like to use a different version instead. You can do so with the following command:
brew install firstname.lastname@example.org # or the old version of PHP you would like
Now we have to find out the name of the latest version of PHP you would like to unlink:
This will display the list of brews. Find your one, mine is
php in this example:
brew unlink php brew link --force --overwrite email@example.com brew doctor php -v
You will notice that php has no version, that is because homebrew will detect the latest version of PHP to use and regularly update it. You can, of course, set this as a version of its own.
Now, let’s return to the latest version of PHP:
brew unlink firstname.lastname@example.org brew link --force --overwrite php brew doctor php -v
You will now be running the latest version of PHP in this example.
Have fun with PHP Code Sniffer!