composer 是 PHP 用來管理依賴(dependency)關係的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫檔案。
依賴管理:
Composer 不是一個包管理器。是的,它涉及 "packages" 和 "libraries",但它在每個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。預設情況下它不會在全域安裝任何東西。因此,這僅僅是一個依賴管理。
這種想法並不新鮮,Composer 受到了 node's npm 和 ruby's bundler 的強烈啟發。而當時 PHP 下並沒有類似的工具。
Composer 將這樣為你解決問題:
a) 你有一個項目依賴於若干個庫。
b) 其中一些庫依賴於其他庫。
c) 你聲明你所依賴的東西。
d) Composer 會找出哪個版本的包需要安裝,並安裝它們(將它們下載到你的項目中)。
系統要求
運行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 設定和編譯標誌也是必須的,但對於任何不相容項安裝程式都會拋出警告。
我們將從包的來源直接安裝,而不是簡單的下載 zip 檔案,你需要 git 、 svn 或者 hg ,這取決於你載入的包所使用的版本管理系統。
Composer 是多平台的,我們努力使它在 Windows 、 Linux 以及 OSX 平台上啟動並執行同樣出色。
安裝 - Windows
使用安裝程式
這是將 Composer 安裝在你機器上的最簡單的方法。
下載並且運行 Composer-Setup.exe (https://getcomposer.org/Composer-Setup.exe),它將安裝最新版本的 Composer ,並設定好系統的環境變數,因此你可以在任何目錄下直接使用 composer 命令。
手動安裝
這使 composer.phar 安裝在 E:/composer 目錄下:
cmd
Microsoft Windows [版本 6.1.7601]
著作權 (c) 2009 Microsoft Corporation。著作權所有,並保留一切權利。
C:\Users\wangyulu>E:
E:\>cd composer
E:\composer>php -r "readfile('https://getcomposer.org/installer');" | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: E:\composer\composer.phar
Use it: php composer.phar
--- 這裡執行完畢後,會建立 composer.phar 檔案 ---
E:\composer>composer -V
'composer' 不是內部或外部命令,也不是可啟動並執行程式
或批次檔。
--- 這時執行 composer -V 查看是否安裝成功,則會報以上錯誤,這時我們只需要在系統內容變數中添加 composer.phar 所在的檔案目錄即可---
--- E:\composer 添加到系統內容變數裡 ---
E:\composer>composer -V
Could not open input file: E:\composer\composer.phar-V
--- 這時執行查看命令則又會報以上錯誤,這時只需要再建立一個 composer.bat 檔案就可以了 ---
E:\composer>echo @php "%~dp0composer.phar" %*>composer.bat
--- 這時會我們會發現在E:\composer目錄中會建立一個 composer.bat 批次檔 ---
E:\composer>composer -V
Composer version 1.0-dev (ea037305499d300f3a534b36a62abcdd1ba3479d) 2015-04-24 1
0:08:11
--- 此時我們執行以上代碼會發現一個版本號碼,這時我們就安裝成功了 ---
--- 這時我們用 monolog 日誌記錄組件寫個測試案例 ---
E:\composer>composer require "monolog/monolog:1.2.*"
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing monolog/monolog (1.2.1)
Downloading: 100%
monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages
to a GrayLog2 server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an A
MQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a M
ongoDB server)
Writing lock file
Generating autoload files
--- 執行以上代碼我們會發現,E:\composer 目錄裡又多一些檔案如下: ---
以下為測試代碼 :
require 'vendor/autoload.php';use Monolog\Logger;use Monolog\Handler\StreamHandler; // create a log channel$log = new Logger('個人中心模組');$log->pushHandler(new StreamHandler('your.log', Logger::WARNING)); // add records to the log$log->addWarning('擷取資訊失敗');$log->addError('參數錯誤');$log = new Logger('登入註冊模組');$log->pushHandler(new StreamHandler('your.txt', Logger::WARNING));$log->addWarning('登入失敗');$log->addError('擷取資訊失敗');
代碼運行結果如下:
上面一處產生 composer.json 是用命令產生的,其實也可以手動建立:
這裏手動建立一個 composer.json 在裡面輸入如下:
{ "require": { "monolog/monolog": "1.0.*" }}
其它這是一個 monolog 的一個配置項, 最後我們在 E:\composer> 執行:
composer install 則也可以安裝 monolog
至此關於 composer 的安裝與 monolog 日誌記錄工具的案例測試到這裡就結束了。文中如有錯誤地方,望能指出,熱愛分享,熱愛生活!
以上概念性文字來源於 composer 中文網,案例來源於個人。
以上就介紹了Composer PHP 依賴管理工具,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。