# Composer介紹
## 依賴管理
`Composer` 不是一個包管理器。是的,它涉及 `packages` 和 `libraries`,但它在每個項目的基礎上進行管理,在你項目的某個目錄中(例如 `vendor`)進行安裝。默認情況下它不會在全局安裝任何東西。因此,這僅僅是一個依賴管理。
這種想法并不新鮮,`Composer` 受到了 `node's npm` 和 `ruby's bundler` 的強烈啟發。而當時 `PHP` 下并沒有類似的工具。
`Composer` 將這樣為你解決問題:
a) 你有一個項目依賴于若干個庫。
b) 其中一些庫依賴于其他庫。
c) 你聲明你所依賴的東西。
d) `Composer` 會找出哪個版本的包需要安裝,并安裝它們(將它們下載到你的項目中)。
## 聲明依賴關系
比方說,你正在創建一個項目,你需要一個庫來做日志記錄。你決定使用 `monolog`。為了將它添加到你的項目中,你所需要做的就是創建一個 `composer.json` 文件,其中描述了項目的依賴關系。
```
{
"require": {
"monolog/monolog": "1.2.*"
}
}
```
我們只要指出我們的項目需要一些 `monolog/monolog` 的包,從 1.2 開始的任何版本。
## 系統要求
運行 `Composer` 需要 `PHP 5.3.2+` 以上版本。一些敏感的 `PHP` 設置和編譯標志也是必須的,但對于任何不兼容項安裝程序都會拋出警告。
我們將從包的來源直接安裝,而不是簡單的下載 `zip` 文件,你需要 `git` 、 `svn` 或者 `hg` ,這取決于你載入的包所使用的版本管理系統。
`Composer` 是多平臺的,在 `Windows` 、 `Linux` 以及 `OSX` 平臺上運行的同樣出色。