首页 > PHP > 使用composer来管理php包依赖

使用composer来管理php包依赖

Github上越来越多的php项目开始使用Composer,可是国内某股神秘的力量一直在阻止我们连接packagist.org。无奈之下买了美国主机,国内访问速度还凑合,远程连接Github,google code,packagist速度杠杠的。不过还是希望这股力量明白他们才是阻止科技的绊脚石。

废话不多说,先确保系统已经添加了php环境变量,也就是说直接使用php -v即可查看php版本,并且php版本最好大于5.3,另外如果您使用的是XAMPP一键安装包,记得开启extension=php_openssl.dll

如果不开启openssl扩展,你以后会遇到类似这样的错误:

51ddfb76645d4cf9604b11f105338bf5.json" file could not be downloaded: failed
 to open stream: Unable to find the socket transport "ssl" - did you forget
 to enable it when you configured PHP?

接下来访问composer官网下载windows安装软件:Composer-Setup.exe。这个文件实际上是一个下载器,在线安装能否成功得看网速和人品。

如果windows在线安装失败请到文末下载composer.phar文件并根据Windows离线安装composer进行配置。

注意,linux下载命令在国内的服务器上基本没速度:curl -sS https://getcomposer.org/installer | php

强烈推荐到文末下载ComposerSetup.zip进行离线安装,如果你以后还要安装phpunit什么的,直接替换一下.phar文件即可,windows下和linux通用!


1. Windows离线安装composer

XP系统安装到C:\Documents and Settings\All Users\Application Data\ComposerSetup\bin下

Win7及以上系统安装到C:\ProgramData\ComposerSetup\bin

如果不存在以上目录请手动创建,需要在\ComposerSetup\bin目录下手动创建2个文件(注意第一个文件为shell脚本,请使用vi命令创建UNIX格式的文件,千万不能使用windows的记事本等工具,建议到文末下载zip包即可)

composer:

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

# see if we are running in cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
	
	# cygwin paths start with /cygdrive/ which will break windows PHP,
	# so we need to translate the dir path to windows format. However
	# we could be using cygwin PHP which does not require this, so we
	# test if the path to PHP starts with /cygdrive/ rather than /usr/bin.
	if [[ $(which php) == /cygdrive/* ]]; then
  		dir=$(cygpath -m $dir);
  	fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

composer.bat:

@ECHO OFF
php "%~dp0composer.phar" %*

第三个文件composer.phar直接从文末的zip包中复制过来即可。

目录结构如下:

blob.png


最重要的事!将bin目录添加到系统环境变量,这个非常简单不再敖述。

最后使用composer -v命令检测composer的版本,如果需要升级composer版本,只需要下载最新版的composer.phar替股覆盖即可。


2. Linux下离线安装Composer

如果你在Windows下已经安装成功了,请将bin目录直接上传到/usr/local/composer/bin目录。

然后将/usr/local/composer/bin加入系统环境变量

最后将/usr/local/composer/bin/composer设置为可执行

[root@localhost ~]# cd /usr/local/composer/bin
[root@localhost bin]# ll
total 1220
-rw-r--r-- 1 root root     587 Dec  2 17:32 composer
-rw-r--r-- 1 root root      38 Oct 16  2013 composer.bat
-rw-r--r-- 1 root root 1238154 Jan  5 09:40 composer.phar
[root@localhost bin]# chmod +x /usr/local/composer/bin/composer
[root@localhost bin]# ll
total 1220
-rwxr-xr-x 1 root root     587 Dec  2 17:32 composer
-rw-r--r-- 1 root root      38 Oct 16  2013 composer.bat
-rw-r--r-- 1 root root 1238154 Jan  5 09:40 composer.phar
[root@localhost bin]#

OK,现在你可以放心使用composer命令了,如果需要升级只需要下载最新版的composer.phar替换即可。

注:以上2个脚本文件来自于Composer-Setup.exe安装时创建的。


3. 切换composer镜像站

为了不影响我们使用composer的体验,强烈建议将packagist.org镜像切换到国内的packagist.cn镜像,国内还是存在着不少优秀的packagist镜像站。打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)执行如下命令:

composer config repo.packagist composer http://packagist.phpcomposer.com

Win7用户会在C:\Users\你的用户名\AppData\Roaming\Composer目录下看到一个config.json文件,该文件中记录着刚才添加的镜像网站该文件内容如下内容:

{
    "repositories": [
        {   
            "packagist": false
        },  
        {   
            "type": "composer", 
            "url": "http://packagist.phpcomposer.com"
        }   
    ]
}

Linux用户会在/root/.composer/目录下看到一个config.json文件,同样记录着刚才添加的镜像配置。

winXP用户需要自行打开C:\Documents and Settings\Administrator\Application Data\Composer目录,并手动新建一个config.json的文件,并填写以上内容。


4. 查看composer全局配置信息

在命令行或控制台执行以下命令,在Win7下和linux下都能很清楚看到各项参数的配置路径,WinXP用户仅能看到局部composer.json的变化,能用就行,不要纠结于全局配置信息。

composer config -l -g

将会打印出当前composer使用的配置信息,很明显在repositories.packagist.url一栏已经切换为国内的镜像站了。

还有其他配置参数,但是貌似这些配置参数不准确:

#全局包引入路径, 该路径不一定正确,请以home为准

[vendor-dir] vendor (C:\Users\Z/vendor)

#全局安装的包可执行文件存放目录, , 该路径不一定正确,请以{$home}/vendor/bin为准例,如phpunit, phpdoc

[bin-dir] {$vendor-dir}/bin (C:\Users\Z/vendor/bin)

#composer的$home环境变量,win7用户在C:/Users/用户名/AppData/Roaming/Composer/vendor目录;linux用户在/root/.composer目录

[home] C:/Users/Z/AppData/Roaming/Composer

只需要将{$home}/vendor/bin加入系统环境变量,然后使用全局来安装包,例如:

composer global require "phpunit/phpunit=5.1.*"


5. 使用composer安装一个小型的php路由应用——slim

首先,你得知道composer的安装;

其次,你得明白php路由的概念;

再次,你得知道ApacheNginxurlrewrite规则。

OK,如果以上三个基础技能全部掌握了,可以看下面这篇文章《使用composer安装slim和slim-json-api》


composer下载:ComposerSetup.zip



文章链接:http://blog.zhengshuiguang.com/php/php-composer.html

随便收藏,请保留本文地址!

标签:composer 包管理

相关文章

评论已关闭