composer 使用

composer官方文檔

1、如何尋找需要的項目或源碼

      https://packagist.org

      進入網站後,可以查詢我們想要用的庫文件,以monolog爲例:

        第一個排名下載量很高。所以我們就用這個了。我們點進去     https://packagist.org/packages/monolog/monolog

       上面圈起來並備註的地方,比較重要

 

二.使用composer.json來加載和下載類庫源碼

         新建一個文件夾,建立一個composer.json文件,文件內容如下

{
        "require":{
                "monolog/monolog":"1.24.0"   //包名稱:包版本
        }
}
~ 

        保存後在同級目錄執行        

composer install

         命令執行後,開始自動下載,下載完畢後的目錄如下所示

  

        文件結構是:vendor文件夾+composer.lock+composer.json。composer.lock等會再說。進入vendor

       裏面是類庫文件,我們下載的 composer,會將 composer 依賴的 psr 一起下載下來。autoload.php等會再說,它是一個自動加載類庫,很強大,我們只需要加載找個文件,就能自動加載使用其他的類庫了,不需要再手動加載。

 

3. composer.lock

        打開這個文件,發現這幾乎和composer.json是一樣的格式和數據,也是各種約束關係,require文件等。

        在安裝依賴後,Composer 將把安裝時確切的版本號列表寫入 composer.lock 文件。這將鎖定改項目的特定版本。以後就會以這個版本爲主,只要有這個文件在,就會忽略所有的composer.json文件。這是非常重要的,因爲 install 命令將會檢查鎖文件是否存在,如果存在,它將下載composer.lock指定的版本(忽略 composer.json 文件中的定義)。

        如果不存在 composer.lock 文件,Composer 將讀取 composer.json 並創建鎖文件。

        我們想想這樣有什麼作用呢?假設一個場景,多人開發,肯定會有人新的人開發完成將要後續開發,那麼他肯定會去更新composer.json的依賴關係,那麼其他人更新後,也會同樣去更新,這樣就亂了。他本來不想去更新,只想用原來的。所以有個這個composer.lock 文件,所有的人都會用一樣的依賴關係版本。等全部都開發好了。再將這個composer.lock文件刪掉就可以了。

        這意味着如果你的requie的依賴更新了新的版本,你也不會獲得任何更新。因爲有composer.lock文件存在,此時要想更新你的依賴版本請使用 update 命令。這將獲取最新匹配的版本(根據你的 composer.json 文件)並將新版本更新進鎖文件composer.lock

如果我們確實需要更新依賴呢?我們可以使用 update 命令,它將重新生成composer.lock文件

composer update   //更新所有包,慎用
composer update 包名稱:包版本   //更新指定某個包
composer require  包名稱:包版本  //更新指定某個包

 

4. 包版本的規則

名稱 實例 描述
確切的版本號 1.0.2 你可以指定包的確切版本。
範圍 >=1.0 >=1.0,<2.0>=1.0,<1.1|>=1.2 通過使用比較操作符可以指定有效的版本範圍。 
有效的運算符:>>=<<=!=。 
你可以定義多個範圍,用逗號隔開,這將被視爲一個邏輯AND處理。一個管道符號|將作爲邏輯OR處理。 
AND 的優先級高於 OR。
通配符 1.0. 你可以使用通配符來指定一種模式。1.0.*>=1.0,<1.1是等效的
賦值運算符 ~1.2 這對於遵循語義化版本號的項目非常有用。~1.2相當於>=1.2,<2.0。想要了解更多,請閱讀下一小節

 

5. 下一個重要版本(波浪號運算符)        

         ~ 最好用例子來解釋: ~1.2 相當於 >=1.2,<2.0,而 ~1.2.3 相當於 >=1.2.3,<1.3。正如你所看到的這對於遵循 語義化版本號 的項目最有用。一個常見的用法是標記你所依賴的最低版本,像 ~1.2 (允許1.2以上的任何版本,但不包括2.0)。由於理論上直到2.0應該都沒有向後兼容性問題,所以效果很好。你還會看到它的另一種用法,使用 ~ 指定最低版本,但允許版本號的最後一位數字上升。

         默認情況下只有穩定的發行版纔會被考慮在內。如果你也想獲得 RC、beta、alpha 或 dev 版本,你可以使用 穩定標誌。你可以對所有的包做 最小穩定性 設置,而不是每個依賴逐一設置。
 

6. autoload.php

      前面說過,在vendor文件夾下面有一個autoload.php文件,這個文件有大大的用戶,他是一個自動加載的文件,我們只要加載了它,那麼我們就相當於講其他的類庫文件都加載了:

require 'vendor/autoload.php';

     加載這一句就可以了。比如,我們在加載了這一句後,想調用mongolog,我們就可以直接用了,不需要另外加載它。

 

7.create-project

       我們常見的框架symfony 和 Laravel 框架 可以使用這個命令下載

composer create-project laravel/laravel your-project-name 2.1.2

composer create-project symfony/framework-standard-edition  your-project-name  2.1.2

 

8. composer的一些常用的命令:

       composer list 列出所有可用的命令
       composer init 初始化composer.json文件(就不勞我們自己費力創建啦),會要求輸入一些信息來描述我們當前的項目,還會要求輸入依賴包
       composer install 讀取composer.json內容,解析依賴關係,安裝依賴包到vendor目錄下
       composer update 更新最新的依賴關係到compsoer.lock文件,解析最新的依賴關係並且寫入composer.lock文件
       composer search packagename 搜索包,packagename替換爲你想查找的包名稱
       composer require packagename 添加對packagename的依賴,packagename可修改爲你想要的包名稱
       composer show packagename
       composer self-update 更新 composer.phar文件自身
       composer command --help 以上所有命令都可以添加--help選項查看幫助信息
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章