該文件包含了項目的依賴和其餘一些源數據。php
{ "require": { "monolog/monolog": "1.0.\*" } }
composer.json 結構詳細見官方說明html
[https://docs.phpcomposer.com/...](https://docs.phpcomposer.com/...laravel
更名了用於將composer.json中的依賴下載安裝到vendor目錄下,同時生成一個composer.lock文件。git
若是你的目錄存在composer.lock文件,那麼composer將會根據lock文件下載指定版本,忽略json文件。json
因而composer install下載的優先級:composer.lock > composer.jsoncomposer
在安裝依賴後,Composer 將把安裝時確切的版本號列表寫入 composer.lock 文件。這將鎖定改項目的特定版本。svn
該命令根據composer.json文件匹配最新的依賴進行下載,並將版本號更新到composer.lock文件性能
若是隻想安裝或更新一個依賴,你能夠白名單它們:優化
composer update monolog/monolog [...]
注:composer update 可能會將你並不想更新的依賴一同更新。這事使用composer update nothing命令,composer只會把composer.json文件改動的依賴進行update。ui
更名了用於增長新的依賴到當前目錄的composer.json文件
該命令用於爲當前項目搜索依賴包,一般它只搜索 packagist.org 上的包
該命令用於列出全部可用的軟件包
該命令能夠查出已安裝在你項目中的某個包,是否正在被其它的包所依賴,並列出他們。
在提交 composer.json 文件,和建立 tag 前,你應該始終運行 validate 命令。它將檢測你的 composer.json 文件是不是有效的
Composer 從現有的包中建立一個新的項目。這至關於執行了一個 git clone 或 svn checkout 命令後將這個包的依賴安裝到它本身的 vendor 目錄。
在部署代碼到生產環境的時候,別忘了優化一下自動加載:
composer dump-autoload --optimize
安裝包的時候能夠一樣使用--optimize-autoloader。不加這一選項,你可能會發現20%到25%的性能損失。
在PHP-FPM模式下,autoloader 會佔用每一個請求的很大一部分時間(好比laravel),使用 classmaps 或許在開發時不太方便,但它在保證性能的前提下,仍然能夠得到 PSR-0/4 規範帶來的便利。
--optimize (-o): 轉換 PSR-0/4 autoloading 到 classmap 得到更快的載入速度。這特別適用於生產環境,但可能須要一些時間來運行,所以它目前不是默認設置。