PHP依赖管理工具composer使用

简介

Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

安装

// 下载 composer-setup.php
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"  
// 校验签名(可选)
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"  
// 运行 composer-setup.php
php composer-setup.php  
// 删除 composer-setup.php
php -r "unlink('composer-setup.php');"  

使用

以安装klein.php为例:

php composer.phar require klein/klein

#或者
./composer.phar require klein/klein

修改国内镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com  

或者修改composer.json文件

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

composer常用命令

  • php composer.phar init
  • php composer.phar install
  • php composer.phar update
  • more

常见错误

异常消息:Unzip with unzip command failed, falling back to ZipArchive class

大致解释:php-zip 扩展依赖 unzip 命令,无法解压归档的压缩文件,导致回滚到归档。

解决办法:安装 zip、unzip 命令和 php-zip 扩展

#centos (我用 php7.1,以它为例)
yum install zip unzip php7.1-zip

#ubuntu
apt-get install zip unzip php7.1-zip  

The Process class relies on proc_open, which is not available on your PHP installation

大致解释:在已安装的 php 中,没有找到可用的 proc_open 进程操作函数。

解决办法:修改 php.ini 配置。把 disable_functions(禁用函数列表)这行里的 proc_openproc_get_status 两个函数删除,然后重启 PHP 服务。

参考文档