COMPOSER是PHP的依赖管理工具,有多个版本,并且都支持PHP5.3.2+版本。
COMPOSER安装:
有几种方式可以进行COMPOSER安装:
1。下载 https://getcomposer.org/Composer-Setup.exe 安装程序,点击后开始安装。
这种EXE的安装包,只有WINDOWS可以使用,它会安装最新版的COMPOSER
安装时可以选择安装目录,会要求定位查找某个PHP所在目录,安装过程会使用到该版本PHP并且进行一些必要的检查。
安装完成后会自动生成composer.bat及composer.phar文件。
2。下载https://getcomposer.org/installer 保存为任意名称的PHP文件(通常取名为composer-set.php)。
然后通过某版本的PHP命令行进行执行该PHP文件
(命令如:某版本php可执行文件 composer-setup.php 。在LINUX中下载和执行还可以一步完成:curl -sS https://getcomposer.org/installer | 某版本php可执行文件 。如果已经配置了默认版本PHP的环境变量,“某版本php可执行文件" 就直接换成"php")
安装时可以指定安装目录(通过--install-dir= 来指定其它位置,否则默认会安装在命令行定位的当前工作目录),安装过程会使用该版本的PHP,并进行一些必要的检查。
安装完成后会自动生成composer.phar文件。
bug: 注意如果此时要安装非最新版本(即指定了--version,但不是最新版本),可能会出现下载卡住或404出错,这是因为最新的composer-set.php文件里指定了各版本会从install.phpcomposer.com下载,除了最新版下载文件在该域名下,而旧版本文件还没有转移过去,不在该域名下,而是在getcomposer.org域名下(它还包含最新版)。
此时可以对composer-set.php作如下修改:
//$this->baseUrl = $uriScheme.'://install.phpcomposer.com';
$this->baseUrl = $uriScheme.'://getcomposer.org';
3。 直接下载某版本(或各版本)的PHAR文件。
如下载最新版的:https://getcomposer.org/composer-stable.phar
windows命令行: explorer https://getcomposer.org/composer-stable.phar
linux命令行: curl https://getcomposer.org/composer-stable.phar
其它版本的:
V2.0.7: https://getcomposer.org/download/2.0.7/composer.phar
V2.0.6: https://getcomposer.org/download/2.0.6/composer.phar
V2.0.5: https://getcomposer.org/download/2.0.5/composer.phar
......
将直接下载保存到指定的目录。这种安装不需要指定某版本的PHP,而且暂时不会进行必要的检查(通常在后期使用的时候根据出错情况再在PHP.INI配置就可以)。
三种安装方式最终都会有composer.phar文件,这个才代表的最终的COMPOSER。
所以推荐使用第三种直接下载的形式,它可以暂时免去必要的检查,防止前两种的安装过程中出现的错误(一旦出错就生成不了composer.phar)
PHAR文件是一种PHP的归档文件(类似于JAVA的JAR),所以是可以通过PHP直接执行的。所以我们说的使用COMPOSER,其代表的意思就是:
通过PHP命令行执行composer.phar文件,其形式命令行代码如:
某版本的php可执行文件 某版本的composer.phar ....
例子:
(WINDOWS下 .exe可以省略)
d:/wamp/php/5.4.0/bin/php d:/composer/composer2.0.6.phar ...
d:/wamp/php/5.5.1/bin/php d:/composer/composer2.0.6.phar ...
d:/wamp/php/7.0.2/bin/php d:/composer/composer2.0.7.phar ...
(LINUX下,.sh, .phar也可以省略)
/usr/lamp/php/5.4.0/bin/php /usr/composer/composer2.0.6 ...
/usr/lamp/php/5.5.1/bin/php /usr/composer/composer2.0.6 ...
/usr/lamp/php/7.0.2/bin/php /usr/composer/composer2.0.7 ...
接下来就是如何简化上述形式了,我们可以使用批处理或SHELL脚本。
首先,由于composer的任何版本针对PHP5.3.2或上以版本都是可行的,所以只需要使用一个版本的COMPOSER即可(推荐使用最新版本),不需要使用多版本的composer.phar。
WINDOWS下利用bat或cmd处理命令:
假设: d:/composer/为composer安装(或存放)目录。目录里有composer.phar为最新版(或某个旧版)
1)首先将composer.phar所在目录(d:/composer/)添加到环境变量。
composer.phar同目录下创建: composer540.bat 内容为:
@echo off
"d:/wamp/php/5.4.0/bin/php" "d:/composer/composer.phar" %*
composer.phar同目录下创建: composer551.bat 内容为:
@echo off
"d:/wamp/php/5.5.1/bin/php" "d:/composer/composer.phar" %*
composer.phar同目录下创建: composer702.bat 内容为:
@echo off
"d:/wamp/php/7.0.2/bin/php" "d:/composer/composer.phar " %*
多个版本就复制多份批处理,修改内容当中的PHP相应版本的路径后,保存为不同名称的BAT文件。
使用简化后的命令:
composer540 ...
composer551 ...
composer702 ...
嫌名称太长的话可以更进一步,将批处理文件命名短点: c540.bat/c551.bat/c702.bat 那命令就缩短为:
c540 ...
c551 ...
c702 ...
LINUX下是同理的,只不过其可执行脚本为SHELL脚本
多版本PHP可用的COMPOSER安装的最终推荐的方式(以WINDOWS为例,LINUX类似):
采用形式:不在项目里局部安装,不在各版本PHP目录里安装,只在独立的目录里安装
第一步: 下载最新composer.phar: https://getcomposer.org/composer-stable.phar 保存为 f:composercomposer.phar。将所在目录添加到环境变量(将f:composer添加到环境变量)
第二步: 在composer.phar保存的目录里新建composer.bat文件,内容编写如:
@echo OFF
"默认使用的PHP版本安装目录/bin/php" "f:/composer/composer.phar" %*
如果有多个版本PHP,直接再复制composer.bat,并重新命名(如composer540.bat,有几个版本就复制几份),修改bat文件内容如:
@echo OFF
" c:/wamp/php/5.4.0/bin/php" "f:/composer/composer.phar" %*
第三步:使用命令:
使用默认版本: composer ....
使用PHP5.4.0版本 : composer540 ...
命令出错就根据信息修改(由于采用直接下载phar文件,忽略安装过程,所以根据出错信息修改相应的php.ini。)
另外如果提示PHP版本过低的情况,这个跟使用COMPOSER的版本没有关系,除非你使用了PHP5.3.2以下版本。这种情况跟依赖管理的提供方有关,即提供方的类库(框架)不支持低版本PHP。
TIPS:
1。不知道(或忘记)版本:
composer -V
2。不知道(或忘记)COMPOSER安装在哪里:
composer -h
最后的信息部分,会出现类如:
The help command displays help for a given command:
php f:composercomposer.phar help list
就可以知道路径。
3。更新到最新的COMPOSER版本:
composer self-update
或者:下载最新composer.phar: https://getcomposer.org/composer-stable.phar 然后放到原安装目录,覆盖原来的就行(这种可以在self-update出错的情况下使用)