PHP DIY 系列------基礎篇:2. Composer

13sai發表於2020-02-18

上一節我們介紹了我們需要遵循的規範,這一節我們來介紹一下我們的專案中需要用到的一個依賴管理工具——Composer。

Composer 是 PHP 的一個依賴管理工具。它允許你申明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。

image

如果你是前端工程師,你應該用過npm;如果你是pyhton開發者,你應該用過pip,簡單說你可以這樣理解composer。

composer在小冊中可能經常會被提及,我們來學習一下安裝和常用命令。

安裝

  1. Linux

composer的安裝比較簡單,不建議使用yum等管理包直接install,因為有可能會修改你的預設php版本。我們可以跳過以下方式安裝:

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

  1. Windows

下載並且執行 Composer-Setup.exe,它將安裝最新版本的 Composer ,建議加入系統的環境變數,這樣你就可以在任何目錄下直接使用 composer 命令。

修改映象源

預設映象源國內下載比較慢,建議更換映象源

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

也可以使用阿里的映象源(推薦)

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

config -g/–global 表示全域性配置

composer常用命令

init初始化

引數:
--name: 包的名稱。
--description: 包的描述。
--author: 包的作者。
--homepage: 包的主頁。
--require: 需要依賴的其它包,必須要有一個版本約束。並且應該遵循 foo/bar:1.0.0 這樣的格式。
--require-dev: 開發版的依賴包,內容格式與 --require 相同。
--stability (-s): minimum-stability 欄位的值。

require增加

require 命令增加新的依賴包到當前目錄的 composer.json 檔案中,並可以指定版本。

composer require vendor/package:2.* vendor/package2:dev-master

install安裝

install 命令從當前目錄讀取 composer.json 檔案,處理了依賴關係,並把其安裝到 vendor 目錄下。

如果當前目錄下存在 composer.lock 檔案,它會從此檔案讀取依賴版本,而不是根據 composer.json 檔案去獲取依賴。這確保了該庫的每個使用者都能得到相同的依賴版本。

如果沒有 composer.lock 檔案,composer 將在處理完依賴關係後建立它。

你可以簡單把composer.lock理解為擴充套件庫的快取。

update更新

為了獲取依賴的最新版本,並且更新 composer.lock 檔案,你應該使用 update 命令。

composer update

這將解決專案的所有依賴,並將確切的版本號寫入 composer.lock。

如果你只是想更新幾個包,你可以像這樣分別列出它們:

composer update vendor/package vendor/package2

==注意==:update命令會更新composer.json裡限定版本的最新依賴。
比如你寫的是”monolog/monolog”: “1.*”,update命令可能會把1.0更新為1.2版本,但不會將1.0更新為2.0。所以使用時需要注意。

search

search 命令允許你為當前專案搜尋依賴包,通常它只搜尋 packagist.org 上的包,你可以簡單的輸入你的搜尋條件。

show

列出所有可用的軟體包,你可以使用 show 命令。

composer-show

也可以點選檢視更多composer包

dump-autoload

列印自動載入索引,某些情況下你需要更新 autoloader,例如在你的包中加入了一個新的類。你可以使用 dump-autoload 來完成,而不必執行 install 或 update 命令。

此外,它可以列印一個優化過的,符合 PSR-0/4 規範的類的索引,這也是出於對效能的可考慮。在大型的應用中會有許多類檔案,而 autoloader 會佔用每個請求的很大一部分時間,使用 classmaps 或許在開發時不太方便,但它在保證效能的前提下,仍然可以獲得 PSR-0/4 規範帶來的便利。

更composer多命令請點選檢視


好了,這一節我們介紹了composer的安裝和常用命令。我們後面可以將框架整合到一個composer包,分享給其他開發同學使用。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

分享開發知識,歡迎交流。qq957042781

相關文章