composer的介紹與使用
來自: http://my.oschina.net/xiongyuanliang/blog/610725
Composer 是 PHP 的 一個依賴管理工具。它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。主要解決的問題:有非常多優秀的開源庫,直接使用可以大大節約開發的 時間,但是在標準的庫里面,又沒有這些功能,于是在運行他們對應的系統的時候,需要去下載相關的庫。(因為你需要跨平臺的移植性,所以就需要對所引用的庫 進行說明與管理)這樣就出現了composer。
composer的安裝:
1.curl -sS https://getcomposer.org/installer | php
下載Composer 的二進制文件,是一個 PHAR 包(PHP 的歸檔)
curl -sS(s是指靜默安裝,S是指出現錯誤就報錯)如果沒有這倆個參數,會顯示下載安裝進度
但是國內安裝composer的時候會經常失敗:(如下,受制于國內網絡的限制)
一個比較好的補充辦法:
curl -sS http://install.phpcomposer.com/installer | php
這個是國內的版本。可以看到很快就會下載好
2.下載好了composer.phar之后,我們無法直接用composer命令,需要讓其在全局進行使用,需要將其移動到/usr/local/bin/ 文件目錄下面(然后我們可以自己做一個命名)
Mv composer.phar /usr/local/bin/composer
這樣我們就可以全局使用了(在命令行里面輸入composer就可以全局使用)
3.安裝完成之后:(需要不定期的進行更新依賴庫,才能拿到最新的依賴庫)
composer selfupdate
Composer的幾個相關概念:
1.phar包:Phar是PHP Archive縮寫,將php文件歸檔到一個文件包。將一個模塊的文件打包成一個phar,這樣方便模塊整體遷移,只需將phar文件移動過去,其他環境中include即可使用。
2.查看composer包 會發現該phar包 的頭部是 #!/usr/bin/env php(該語句表明該命令是用環境里的php進行運行)
3.使用對應項目的composer.json 非常簡單,在其對應的文件目錄下面,composer install
即完成了依賴庫的安裝。
Composer的寫法:(一般依賴庫的文件名叫composer.json)下面以Laravel最新版本的composer.json為例子進行說明:
{
//包的名字
"name": "laravel/laravel",
//包的簡單描述
"description": "The Laravel Framework.",
//包的關鍵詞
"keywords": ["framework", "laravel"],
//許可證,確保其他程序員在使用的時候,沒有法律上的問題
"license": "MIT",
//包的類型,默認為 library。這里是項目
"type": "project",
//需要的依賴條件
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*"
},
//列出開發這個包(或跑測試等等)所依賴的包。在使用 install 命令時,只有帶上 “–dev” 參數才能安裝 dev 包。在使用 update 命令時,帶上 “–no-dev” 則不更新。
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*",
"symfony/dom-crawler": "2.8.*|3.0.*"
},
//提供給 PHP autoloader 的自動加載映射
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
//測試環境下的自動映射
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
]
},
//針對項目的一些配置。
"config": {
"preferred-install": "dist"
}
}