執行composer update命令(ling)后(hou)

Loading composer repositories with package information
Updating dependencies (including require-dev)composer update

在這個狀態(tai)下沒(mei)反映解決方(fang)案:

鏡像用法

有兩種方(fang)式(shi)啟用本鏡像(xiang)服務(wu):

  • 系統全局(ju)配置: 即將配置信息添加到 Composer 的全局配置文件 config.json 中。見“方法一”

  • 單個(ge)項目配置: 將配置信息添加到某個項目的 composer.json 文件中。見“方法二”

方(fang)法(fa)一: 修改 composer 的全局配置文件(推薦方(fang)式)

打開命令(ling)(ling)行窗口(kou)(windows用戶)或控制臺(Linux、Mac 用戶)并執行如下命令(ling)(ling):

復(fu)制

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

方法二: 修改當前項目的 composer.json 配置文件:

打開命令行窗口(windows用戶)或控制臺(Linux、Mac 用戶),進入你的項目的根目錄(也就是 composer.json 文件所(suo)在目錄),執行(xing)如(ru)下命令:

復制

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

上述命令將會在當前項目中的 composer.json 文件的末尾自動添加鏡像的配置信息(你也可以自己手工添加):

復制

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

以 laravel 項目的 composer.json 配置文件(jian)為例,執行上述命令(ling)后如下(xia)所示(注意(yi)最(zui)后幾行):

復制

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "//packagist.phpcomposer.com"
        }
    }
}

OK,一切搞定!試一下 composer install 來體驗(yan)飛一(yi)般的速度(du)吧!

鏡像原理:

一般情況下,安裝包的數據(主要是 zip 文件)一般是從 github.com 上下載的,安裝包的元數據是從 packagist.org 上(shang)下載的。

然而(er),由于眾(zhong)所周(zhou)知的原(yuan)因,國外的網站連接速(su)度(du)很慢,并(bing)且隨時可能被“墻”甚至“不存(cun)在”。

“Packagist 中國全量鏡像”所做的就是緩存所有安裝包和元數據到國內的機房并通過國內的 CDN 進行加速,這樣就不必再去向國外的網站發起請求,從而達到加速 composer install以及 composer update 的過程,并且更加快速、穩定。因此,即使 packagist.orggithub.com 發生故(gu)障(zhang)(主要是連接速(su)度太慢和(he)被墻),你(ni)仍然可(ke)以下載(zai)、更新安裝(zhuang)包。

解除鏡象:

如果需(xu)要解除鏡像并恢復(fu)到(dao) packagist 官方源,請執行以下命令(ling):

復(fu)制(zhi)

composer config -g --unset repos.packagist

執行之后,composer 會利用默認(ren)值(也就(jiu)是官(guan)方源)重(zhong)置(zhi)源地址(zhi)。

將來(lai)如果(guo)還需要使用(yong)鏡像的(de)話,只(zhi)需要根據前面的(de)“鏡像用(yong)法”中(zhong)介紹的(de)方法再次設置鏡像地(di)址即(ji)可(ke)。