composer的介紹與使用

MarkoMcWill 8年前發布 | 11K 次閱讀 PHP開發

來自: 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包:PharPHP 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"

    }

}

 


 本文由用戶 MarkoMcWill 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!