COMPOSER PHP 依賴管理工具

composer 是 PHP 用來管理依賴(dependency)關係的工具。你能夠在本身的項目中聲明所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫文件。php

依賴管理:
Composer 不是一個包管理器。是的,它涉及 「packages」 和 「libraries」,但它在每一個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。默認狀況下它不會在全局安裝任何東西。所以,這僅僅是一個依賴管理。node

這種想法並不新鮮,Composer 受到了 node’s npm 和 ruby’s bundler 的強烈啓發。而當時 PHP 下並無相似的工具。git

Composer 將這樣爲你解決問題:npm

a) 你有一個項目依賴於若干個庫。json

b) 其中一些庫依賴於其餘庫。ruby

c) 你聲明你所依賴的東西。composer

d) Composer 會找出哪一個版本的包須要安裝,並安裝它們(將它們下載到你的項目中)。svn

系統要求工具

運行 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 日誌記錄工具的案例測試到這裏就結束了。文中若有錯誤地方,望能指出,熱愛分享,熱愛生活!

相關文章
相關標籤/搜索