Composer - Amazing Php New Package Manager

雖然最近都把亂玩的時間放在NodeJS上面,不過畢竟工作的環境還是以PHP為主,所以還是會分心看一下PHP有什麼什麼神奇的東西出現。老實說,我覺得比起ruby陣營來說,php的社群感覺好像沒那麼活躍,近期也沒看到什麼讓人覺得很「驚喜」的東西(不過也有可能是因為我的心思 沒放在上面的關係 XD)

不過最近node的崛起看起來也替PHP注入了一股新的活力,有不少新的專案伴隨出現,像之前提過的[dnode](http://ferrari.github.com/blog/2011-11-30 -dnode-remote-method-invocation-for-nodejs.html )就是一個很好的例子,不過今天想提的是另一個最近出現的好物 - Composer

Composer - Package Manager for PHP

不過又是另一個套件管理而已嘛...0rz

這麼想其實沒錯(倒),不過Composer有參考許多npm的優點,npm應該對於nodejs的玩家來說並不陌生,是專屬的套件管理 :p( 想知道詳細的可以直接看官網的說明或是之前簡單提過的文章

這邊也有原作者親自寫的一篇介紹文,相當受用 :p

就我的理解,簡單來說,Composer不同於PEAR、PECL這些我們比較熟悉的PHP pkg manager之處在於,它把套件管理從系統層降到專案的層級,就跟npm一樣,npm之所以簡單方便就是因為它是基於每個專案,你可以在目錄下自己定義package.json的檔案(Composer也是一樣),然後把專案需要的套件相依關係 寫在裡面,你不用擔心版本衝突的問題,因為不同的專案下的是互相獨立的。

使用上也是相當簡單,主要是composer.json的內容,寫好定義之後之下簡單下個指令就可以了:

// first time using
wget http://getcomposer.org/composer.phar (丟到PATH去會比較方便)  
chmod a+x composer.phar  
// not first time...
// Go to your project directory
composer.phar install  
// Done!!

這樣就ok了,composer會把需要的套件放到vendor下面,
然後你只需要在程式中放進這行
require(__DIR__.'/vendor/.composer/autoload.php');
然後就可以開心寫PHP了(誤)

同樣的,因為這是個「剛出來」的「Open Soruce」專案 所以如果用起來覺得不錯,可以貢獻/回饋一下社群 :p 有興趣的話可以到目前composer的程式庫去翻翻看有沒有什麼有趣的專案 :p

Share this: