Composer 是 PHP 的套件管理工具,而且是以專案為管理單位,讓我們可以直接使用其他高手設計好的元件,可以說是 PHP 的火力支援庫,例如以下這些好用且重要的套件: tracy、carbon、monolog、fpdf 等。
以往 PHP 的套件散落在許多不同的網頁,沒有集中存放的儲存庫,因此引用的開發者要更新或查詢都不容易, Packagist 儲存庫彙集了許多可運用 composer 安裝的套件,並透過網頁的方式,查詢下載次數、推薦次數、版本號碼、授權方式、原始碼位置等資訊,因此套件設計者可只要依照規範重構自己的套件後,再將資訊放上去,之後開發者便可先在 Packagist 上查詢喜歡的套件,然後使用 composer 指令來進行安裝與更新該套件。
composer.json :
是一個 json 資料格式的設定檔,可讓開發者指定本專案使用的套件與版本範圍,方便 composer 進行相依參考。
composer.lock :
開發者無須設定它,本檔案存放了套件本身與其相依套件的實際下載位址,以及相關資訊,它會在執行 install 或 update 之後自動產生或更新。
vender :
目錄存放所有下載之後的套件,其中的 autoload.php 提供所有使用套件的 php require 之用。
建立一個獨立的資料夾 public/
來存放網頁內容,如此一來可以減少專安目錄的資訊過度洩漏,例如 : composer.json
、.git/
等。
mkdir public
mv index.php public/
php -S localhost:8000 -t public
為了確保之後可以使用 composer 的套件,所以必須在應用程式的入口點中優先引入 vendor/autoload.php
require __DIR__ . '/vendor/autoload.php';
只要引用上述檔案,就可以載入套件中所有對外公開的類別。基本上每個套件都會定義自己的 autoload 規則,在安裝時,composer 會把這些規則加入,這樣透過 autoload.php 就可以直接使用所有已安裝的類別。