Skip to content

Instantly share code, notes, and snippets.

@davebarnwell
Last active February 28, 2024 21:52
Show Gist options
  • Star 42 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save davebarnwell/e6a5cd13381caef104317b45f7115846 to your computer and use it in GitHub Desktop.
Save davebarnwell/e6a5cd13381caef104317b45f7115846 to your computer and use it in GitHub Desktop.
Global installation of PHP tools with Composer

Global installation of PHP tools with Composer

To install a composer package globally, you run the usual require command, but with the addition of the global modifier. So to install PHPUnit, you would run:

$ composer global require phpunit/phpunit
$ composer global require phpunit/dbunit
$ composer global require phing/phing
$ composer global require phpdocumentor/phpdocumentor
$ composer global require sebastian/phpcpd
$ composer global require phploc/phploc
$ composer global require phpmd/phpmd
$ composer global require squizlabs/php_codesniffer

This will install PHPUnit and all its dependencies into the ~/.composer/vendor/ directory and, most importantly, the phpunit CLI tools are installed into ~/.composer/vendor/bin/.

Simply add this directory to your PATH in your ~/.bash_profile (or ~/.bashrc) like this:

export PATH=~/.composer/vendor/bin:$PATH

and phpunit is now available on your command line.

To keep your tools up to date, you simply do this:

composer global update

To remove a package, you edit ~/.composer/composer.json and then run composer global update.

@gemmadlou
Copy link

Thanks

@kiproping
Copy link

kiproping commented Nov 7, 2017

In my case I don't have .vendor folder.

@jawira
Copy link

jawira commented Aug 29, 2018

I definitively would added composer global require hirak/prestissimo, it's not a tool but speeds up downloads a lot.
Also, my bin folder was already added to path... I suppose it's because I installed composer with apt-get install composer.

@jawira
Copy link

jawira commented Aug 29, 2018

localheinz/composer-normalize it's also a cool tool !
https://packagist.org/packages/localheinz/composer-normalize

@bolechen
Copy link

bolechen commented Mar 27, 2020

export PATH="$(composer config -g home)/vendor/bin:$PATH"

is more rubust.

@anndaramola
Copy link

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment