Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How composer check php version?

I just wondering how composer check which php to use when check for requirements. I use MacOS and in terminal type:

composer require phpunit/phpunit

the result is something like:

Problem 1
- phpunit/phpunit 5.0.4 requires php >=5.6 -> your PHP version (5.5.27) or "config.platform.php" value does not satisfy that requirement....

When I check php version:

php -v

The result is:

PHP 5.6.10 (cli) (built: Jun 12 2015 14:08:56) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

Which is:

which php

php: aliased to /Applications/MAMP/bin/php/php5.6.10/bin/php

Can someone explain this. Thanks in advance!

like image 273
fireball70 Avatar asked Oct 11 '15 10:10

fireball70


People also ask

What PHP version is composer using?

System Requirements# Composer in its latest version requires PHP 7.2.5 to run. A long-term-support version (2.2.x) still offers support for PHP 5.3.2+ in case you are stuck with a legacy PHP version.

How do I check my PHP version?

1. Type the following command, replacing [location] with the path to your PHP installation. 2. Typing php -v now shows the PHP version installed on your Windows system.

How do I check composer version?

Test ComposerOpen up Command Prompt and type composer -V (that's uppercase V). If all was installed correctly, you should see a version number.

How do I know if PHP composer is installed?

You can check your installed composer version using a command composer -v at the current path. Such as: composer -v.


3 Answers

Composer can tell you what version of PHP it's running on, if you specify debug verbosity -vvv.

I like to run it with the about command, since the output is relatively short.

composer -vvv about

Example output:

... Running 1.8.5 (2019-04-09 17:46:47) with PHP 7.3.5 on Darwin / 18.6.0 ...

Edit: This has gotten more interest than I expected, so here's a version with cleaner output:

composer -vvv about 2>&1 | grep "PHP"
like image 183
Tin Can Avatar answered Oct 17 '22 09:10

Tin Can


On MacOs X the default installation of php resides in /usr/bin. If you upgrade your php it will most likely be installed somewhere else (like /usr/local/php5), or if you use MAMP or something else it will be elsewhere. Just make sure that the first occurrence of php when traversing your PATH is the same as the version your webserver is using. (like have /usr/local/php5/bin before /usr/bin in your PATH). That will solve your problem.

like image 38
Gezmo Avatar answered Oct 17 '22 11:10

Gezmo


If you used a package install method, such as apt-get on Ubuntu, chances are that the executable will include a "shebang" pointing to the specific php that should be used to run that specific composer file.

When using the command composer the cli will first resolve which binary to use. By running which composer you can find what binary that is.

$ which composer
/usr/bin/composer

Once you know that, you can open the file, for instance using vim: vim /usr/bin/composer (generally it takes super user access to modify binaries so you shouldn't be able to mess composer up doing that).

On the first line of the composer binary should be a shebang, possibly looking like #!/usr/bin/php that would instruct the composer executable on how it should run.

You can then call that php binary directly to verify its version:

/usr/bin/php -v
like image 2
Félix Adriyel Gagnon-Grenier Avatar answered Oct 17 '22 09:10

Félix Adriyel Gagnon-Grenier