php composer使用

Composer-PHP中用來管理依賴(dependency)

定義

  1. composer是PHP中用來管理依賴(dependency)關係的工具。你能夠在本身的項目中聲明所依賴的外部工具庫(libraries),Composer會幫你安裝這些依賴的庫文件。
  2. Composer 須要PHP5.3.2+ 以上的環境來運行。有幾個敏感的PHP設置和編譯標誌也是必需的,但安裝程序會發出警告當存在任何不兼容的狀況。
  3. Composer 是兼容多平臺的,其運行適用於Windows,Linux和OSX。php

    安裝

  4. linux
    • curl -sS https://getcomposer.org/installer | PHP
    • 你能夠經過 --install-dir 選項指定 Composer 的安裝目錄(它能夠是一個絕對或相對路徑)
    • 全局安裝
      mv composer.phar /usr/local/bin/composer
      如今只須要運行 composer 命令就可使用 Composer 而不須要輸入 php composer.phar。
  5. windows
    下載 https://getcomposer.org/Composer-Setup.exe
    windows可能須要設置composer的環境變量
  6. composer -V 查看版本號
    composer -help 查看命令幫助
  7. 參考文獻
    http://docs.phpcomposer.com/
  8. composer 中國鏡像的使用
    http://pkg.phpcomposer.com/linux

    composer.json 文件說明

  9. require keygit

    {
         "require": {
             "monolog/monolog": "1.0.*"
         }
     }
    • require 須要一個 包名稱 (例如 monolog/monolog) 映射到 包版本 (例如 1.0.*) 的對象。
    • 包名稱由供應商名稱和其項目名稱構成
  10. 版本運算符
    • 確切版本 1.0.2
    • 通配符 1.0.* 1.0的全部版本
    • 範圍 >、>=、<、<=、!= ,你能夠定義多個範圍,用逗號隔開,這將被視爲一個邏輯AND處理。一個管道符號|將做爲邏輯OR處理。
    • 賦值運算符 ~1.2,~1.2至關於>=1.2,<2.0, 容許1.2以上的任何版本,但不包括2.0。你還會看到它的另外一種用法,使用 ~ 指定最低版本,但容許版本號的最後一位數字上升。
  11. 執行安裝 php composer.phar install
    • 接着前面的例子,這將會找到 monolog/monolog 的最新版本,並將它下載到 vendor 目錄。 這是一個慣例把第三方的代碼到一個指定的目錄 vendor。若是是 monolog 將會建立 vendor/monolog/monolog 目錄。
    • 另外一件事是 install 命令將建立一個 composer.lock 文件到你項目的根目錄中。
    • 若是你正在使用Git來管理你的項目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不會但願將全部的代碼都添加到你的版本庫中。
  12. composer.lock - 鎖文件
    • 在安裝依賴後,Composer 將把安裝時確切的版本號列表寫入 composer.lock 文件。這將鎖定改項目的特定版本。
    • 使用 update 命令。這將獲取最新匹配的版本(根據你的 composer.json 文件)並將新版本更新進鎖文件。php composer.phar update
    • 若是隻想安裝或更新一個依賴,你能夠白名單它們:
      php composer.phar update monolog/monolog [...]
  13. 自動加載
    • 對於庫的自動加載信息,Composer 生成了一個 vendor/autoload.php 文件。你能夠簡單的引入這個文件,你會獲得一個免費的自動加載支持。
      require 'vendor/autoload.php';
    • 你能夠在 composer.json 的 autoload 字段中增長本身的 autoloader。json

      {
            "autoload": {
                "psr-4": {"Acme\\": "src/"}
            }
        }
    • 你能夠定義一個從命名空間到目錄的映射。此時 src 會在你項目的根目錄,與 vendor 文件夾同級。例如 src/Foo.php 文件應該包含 Acme\Foo 類。
      添加 autoload 字段後,你應該再次運行 install 命令來生成 vendor/autoload.php 文件。
    • 引用這個文件也將返回 autoloader 的實例,你能夠將包含調用的返回值存儲在變量中,並添加更多的命名空間。這對於在一個測試套件中自動加載類文件是很是有用的,例如。windows

      $loader = require 'vendor/autoload.php';
        $loader->add('Acme\\Test\\', __DIR__);

      使用示例

  14. 基本命令的使用
  15. 一個最小化的composer.json,切換到項目目錄,新建一個composer.jsoncomposer

    {
         "require-dev": {
             "phpunit/phpunit": "4.3.*"
         }
     }
  16. 執行 composer install
    • 會建立vendor目錄,裏面就是相關的代碼。
    • 會建立composer.lock文件
    • 會生成 vendor/autoload.php 是自動加載的php文件
相關文章
相關標籤/搜索