初识Composer
参考素材
phpcomposer官网:Composer 中文网 / Packagist 中国全量镜像
在线官方文档:Composer 中文文档 | Composer 中文网
辅助工具
介绍
Composer是 PHP 用来管理依赖(dependency)关系的工具。
安装Composer
- linux环境安装Composer
# curl -sS https://getcomposer.org/installer | php
1)下载composer
# curl -sS https://getcomposer.org/installer | php
注:这个方法已经比较旧了,可能下载不成功,推荐下面方法(参考: Linux如何安装Composer-composer-PHP中文网)
# php -r
"copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
# php composer-setup.php
注:其中可能会报错“error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in Command line”,是由于php的openssl证书错误,可以参考如下
Windows下安装composer出错的原因_congjl2002的专栏-CSDN博客
下载相应的cacert.pem,并修改php.ini的[openssl]的相应位置openssl.cafile=的相应的路径
linux中 # cd ~ && wget http://curl.haxx.se/ca/cacert.pem
2)将composer.phar文件移动到bin目录以便全局使用composer命令
# mv composer.phar /usr/local/bin/composer
3)切换国内源
# composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
注意以前用这个 composer config -g repo.packagist composer https://packagist.phpcomposer.com,但是Packagist / Composer 中国全量镜像镜像很不稳定,推荐用https://mirrors.aliyun.com/composer
查看当前使用镜像源:
# composer config -gl
注意,最新版composer 2.0.13,可能需要恢复原来源配置,不然可能会遇到报错如“Root composer.json requires elasticsearch/elasticsearch, it could not be found in any version, there”
# composer config -g repo.packagist composer https://packagist.org
4)输入composer验证:
# composer -v
Composer安装成功
其他composer 命令
# composer config -l -g //包来源地址查询命令
composer升级
有时版本太旧时会提示“You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. ”,我们可以执行如下指令
# composer self-update --2
就可以升级到2.x版本
使用Composer
当前目录下,建立composer.json文件,将需要引入的依赖包编写如下,下面举个最简单的引入依赖包predis,如下
{
"require": {
"predis/predis": "^1.1"
}
}
其中require中包含的是资源包名称和版本,如 "predis/predis": "^1.1",可以在网站https://packagist.org中查询,如下:
查询到匹配的包名、版本名,填入即可。
在当前目录下执行安装依赖包
# composer install
查看安装目录
发现多了个vendor目录,这里就是下载的predis依赖包
执行后会生成一个composer.lock,说明是第一次安装composer资源包锁定标记。如果再需要下载其他的资源包,我们修改资源包配置文件composer.json,添加需要的资源包后,则需要命令如下:
# composer update
这样会继续下载需要的资源包。
代码中引用依赖包,使用相应包中的类及方法,举例如下如下
//引入依赖包
require "vendor/autoload.php";
//从缓存当中读取,可以更新的,根据集群状态更新
$parameters = ['127.0.0.1:6392', '127.0.0.1:6393', '127.0.0.1:6394'];
$options = ['cluster' => 'redis'];
$client = new Predis\Client($parameters, $options);
基本指令
composer install //首次在生产环境中,需要安装依赖库
composer dump-autoload //首次在生产环境中需要编译执行一下,加载依赖库
Windows版安装
参考网址:[php]Windows环境下Composer的安装教程 - landv - 博客园
composer下载地址:https://getcomposer.org/Composer-Setup.exe
composer.phar下载地址:简书
composer版本降级命令:composer self-update --1
问题记录
- composer运行报错“[Composer\Downloader\TransportException]”
原因:被墙了! 更改composer配置切换到国内composer源
解决:composer config -l -g
在[home]配置项 得到composer配置路径
修改config.json文件为
{
"config": {},
"repositories": [
{"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},
{"packagist": false}
]
}
有时镜像地址也是会挂了的,可以换用Laravel China 镜像完成历史使命,将于两个月后停用 | PHP 技术论坛(这个已停用了)
也可以这样添加(这个已停用了)
composer config -g repo.packagist composer https://packagist.laravel-china.org
持续完善,待续...