為什么要使用Composer中國全量鏡像?
一般情況下,安裝包的數(shù)據(jù)(主要是 zip 文件)是從 github.com 上下載的,安裝包的元數(shù)據(jù)是從 packagist.org 上下載的。
然而,由于眾所周知的原因,國外的網(wǎng)站連接速度很慢,并且隨時(shí)可能被“墻”。
“Composer 中國全量鏡像”所做的就是緩存所有安裝包和元數(shù)據(jù)到國內(nèi)的機(jī)房并通過國內(nèi)的 CDN 進(jìn)行加速,這樣就不必再去向國外的網(wǎng)站發(fā)起請求,這樣我們使用Composer時(shí)就會(huì)更加快速、穩(wěn)定。
一、查看當(dāng)前鏡像地址
在命令行輸入如下命令,即可查看鏡像地址:
$ composer config -g repo.packagist
{"type":"composer","url":"https://packagist.org","allow_ssl_downgrade":true}
也可以使用 composer config -l -g 查看所有全局配置
二、啟用中國全量鏡像服務(wù):
啟用中國全量鏡像服務(wù)有兩種方式,具體配置方法如下:
1. 系統(tǒng)全局配置:
即將配置信息添加到 Composer 的全局配置文件 config.json 中。修改composer的全局配置文件(推薦方式),打開命令行并執(zhí)行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
2. 單個(gè)項(xiàng)目配置:
即將將配置信息添加到某個(gè)項(xiàng)目的 composer.json 文件中。修改當(dāng)前項(xiàng)目的composer.json配置文件有兩種方式,最后都是向文件中添加如下配置信息:
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
2.1 打開命令行并進(jìn)入項(xiàng)目的根目錄(也就是 composer.json 文件所在目錄),執(zhí)行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
該命令將會(huì)在當(dāng)前項(xiàng)目中的 composer.json 文件的末尾自動(dòng)添加鏡像的配置信息
2.2 手動(dòng)向composer.json文件中添加以上信息
Composer 常用命令總結(jié)(三)
init(初始化)
該命令用于創(chuàng)建 composer.json 文件,并進(jìn)行基礎(chǔ)信息配置:
$ composer init
可以配置Package name、Description、Author、Minimum、Package Type、License、dependencies 及 dev dependencies 信息。
完成后配置文件內(nèi)容如下:
{
"name": "test/test",
"description": "test init",
"type": "library",
"license": "License Description",
"authors": [
{
"name": "mayanlong",
"email": "json_vip@163.com"
}
],
"require": {}
}
search(搜索)
根據(jù)名稱搜索相關(guān)的包,成功后會(huì)列出符合的相關(guān)包的信息,本處以搜索 monolog 為例:
$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
kdyby/monolog Integration of Monolog into Nette Framework
show(詳情)
根據(jù)包的名稱,列出包的相關(guān)信息,本處以查看 monolog/monolog 為例:
$ composer show -all monolog/monolog
name : monolog/monolog
descrip. : Sends your logs to files, sockets, inboxes, databases and various web services
keywords : log, logging, psr-3
versions : dev-master, 2.0.x-dev, 1.x-dev, 1.21.0, 1.20.0, 1.19.0, 1.18.2, 1.18.1, 1.18.0, 1.17.2, 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.1, 1.13.0, 1.12.0, 1.11.0, 1.10.0, 1.9.1, 1.9.0, 1.8.0, 1.7.0, 1.6.0, 1.5.0, 1.4.1, 1.4.0, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1
想查看更多信息,就親自將該命令復(fù)制到命令行執(zhí)行吧。
install (安裝)
我們先在 composer.json 配置中添加一個(gè) monolog/monolog 依賴庫,如下:
{
"name": "test/test",
"description": "test init",
"type": "library",
"license": "License Description",
"authors": [
{
"name": "mayanlong",
"email": "json_vip@163.com"
}
],
"require": {
"monolog/monolog": "1.21.*",
}
}
然后通過如下命令進(jìn)行安裝依賴
$ composer install
update (更新)
如果我們新增或者刪除了某個(gè)依賴,可以通過如下命令進(jìn)行更新
$ composer update
如果只想安裝或更新一個(gè)依賴,可以使用如下命令:
$ composer update monolog/monolog [...]
require (申明依賴)
我們也可以用命令直接添加依賴,可以根據(jù)自己的需要選擇拉取的版本,執(zhí)行該命令后將自動(dòng)下載,命令如下:
$ composer require symfony/http-foundation
$ composer require "symfony/http-foundation @dev"
$ composer require "symfony/http-foundation 4.0"
$ composer require "symfony/http-foundation ~4.0"
$ composer require "symfony/http-foundation ^4.0"
符號含義不清楚的可以查看 Composer 官網(wǎng):https://getcomposer.org/doc/articles/versions.md#next-significant-release-operators
clear-chache (清除本地緩存)
安裝一個(gè)包后過,就會(huì)緩存該包到本地,再次下載會(huì)優(yōu)先從本地獲取,如果不需要可以清掉這些本地緩存,命令如下:
$ composer clear-cache
Cache directory does not exist (cache-vcs-dir):
Clearing cache (cache-repo-dir): /root/.composer/cache/repo
Clearing cache (cache-files-dir): /root/.composer/cache/files
Clearing cache (cache-dir): /root/.composer/cache
All caches cleared.
--version(查看版本)
該命令用于用于查看 Composer 版本信息,命令如下:
$ composer --version
Composer version 1.5.2 2017-09-11 16:59:25
self-update (更新版本)
Composer 用了一段時(shí)間后,發(fā)現(xiàn)使用后會(huì)提示更新版本,命令如下:
$ composer self-update
Updating to version 1.5.6 (stable channel).
Downloading (100%)
Use composer self-update --rollback to return to version 1.5.2
如果該版本有問題或者想用之前版本,可以回退到之前的版本,命令如下:
$ composer self-update --rollback 1.5.2
Rolling back to version 2017-09-11_16-59-25-1.5.2.