<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 一、拉取組件是不是很慢? ## 換源(中國全量鏡像) ### 修改 composer 的全局配置文件 打開命令行窗口(windows用戶)或控制臺(Linux、Mac 用戶)并執行如下命令: composer config -g repo.packagist composer https://packagist.phpcomposer.com ## 鏡像原理 一般情況下,安裝包的數據(主要是 zip 文件)一般是從 github.com 上下載的,安裝包的元數據是從 packagist.org 上下載的。 然而,由于眾所周知的原因,國外的網站連接速度很慢,并且隨時可能被“墻”甚至“不存在”。 “Packagist 中國全量鏡像”所做的就是緩存所有安裝包和元數據到國內的機房并通過國內的 CDN 進行加速,這樣就不必再去向國外的網站發起請求,從而達到加速 composer install 以及 composer update 的過程,并且更加快速、穩定。因此,即使 packagist.org、github.com 發生故障(主要是連接速度太慢和被墻),你仍然可以下載、更新安裝包。 # 二、安裝應該使用哪個命令呢,install, update 還是 require ? ## 舉個例子 這個fork過百的composer管理的組件包,他的安裝命令有問題。[地址在此](https://github.com/orangehill/iseed#installation)。 ![composer包文檔錯誤](https://box.kancloud.cn/2e7d11b6b01812aad769ca43b5a72fe4_1974x1424.png) 由于對composer命令的不準確理解,導致出現加載版本錯誤的情況。 ` composer update` 這個命令在我們現在的邏輯中,可能會對項目造成巨大傷害。 因為` composer update `的邏輯是按照 `composer.json `指定的擴展包版本規則,把所有擴展包更新到最新版本,注意,是 所有擴展包,舉個例子,你在項目一開始的時候使用了 monolog,當時的配置信息是 "monolog/monolog": "1.*", ### 后果 安裝的是 monolog 1.1 版本,而一個多月以后的現在,monolog 已經是 1.2 了,運行命令后直接更新到 1.2,這時項目并沒有針對 1.2 進行過測試,項目一下子變得很不穩定,情況有時候會比這個更糟糕,尤其是在一個龐大的項目中,你沒有對項目寫完整覆蓋測試的情況,什么東西壞掉了你都不知道。 ### 命令定義 composer install - 如有 composer.lock 文件,直接安裝,否則從 composer.json 安裝最新擴展包和依賴; composer update - 從 composer.json 安裝最新擴展包和依賴; composer update vendor/package - 從 composer.json 或者對應包的配置,并更新到最新; composer require new/package - 添加安裝 new/package, 可以指定版本,如: composer require new/package ~2.5. 下來介紹幾個日常生產的流程,來方便加深大家的理解。 #### 情景一:開發者引入新組件 創建 composer.json,并添加依賴到的擴展包; 運行 composer install,安裝擴展包并生成 composer.lock; 提交 composer.lock 到git代碼版本控制器中,不要加入忽略。 #### 情景二:協作者安裝現有組件 克隆或者更新項目后,其他開發者引入新的組件,這是我們需要也拉下來。根目錄下直接運行 composer install 從 composer.lock 中安裝 指定版本 的擴展包以及其依賴; 此流程適用于代碼部署。 #### 情景三:為項目添加新組件 使用 composer require vendor/package 添加擴展包, 可以規定版本號,如: composer require "foo/bar:1.0.0" 相比較情景一,更推薦require的方式對組件進行添加,升級操作。 # 三、拉取失敗后怎么辦? ## 分析 每個人是從菜雞階段過來的,一開始,我們對 Composer 不熟,用的是官方源,非國內鏡像,導致網絡不穩定或者很慢很慢導致超時。往往一次不順之后,再次拉取還是不行。 此時需要檢查composer.json是否格式正確,不過一般我們不希望phper自己去修改composer.json文件,因為無論安裝,卸載,升級,都可以通過composer命令進行管理。 ## 原因 拉取失敗很大幾率是網速問題導致的。 ## 解決 先清理cache composer clear-cache // Aliased to clearcache, clears composer's internal package cache. 清理chache之后,再次拉取就可以避免進入失敗的死循環,同時建議更換國內源以提高網速和穩定性,如果條件具備可以掛網速穩定的vpn代理科學上網,保證composer順利工作。 此時我們在項目中使用composer,基本沒什么問題了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看