composer的介紹與使用

  Composer 是 PHP 的 一個依賴管理工具。它容許你申明項目所依賴的代碼庫,它會在你的項目中爲你安裝他們。主要解決的問題:有很是多優秀的開源庫,直接使用能夠大大節約開發的 時間,可是在標準的庫裏面,又沒有這些功能,因而在運行他們對應的系統的時候,須要去下載相關的庫。(由於你須要跨平臺的移植性,因此就須要對所引用的庫 進行說明與管理)這樣就出現了composer php

    composer的安裝: css

 1.curl -sS https://getcomposer.org/installer | php laravel

下載Composer 的二進制文件,是一個 PHAR 包(PHP 的歸檔) 程序員

curl -sS(s是指靜默安裝,S是指出現錯誤就報錯)若是沒有這倆個參數,會顯示下載安裝進度 json

可是國內安裝composer的時候會常常失敗:(以下,受制於國內網絡的限制) 網絡


 

一個比較好的補充辦法: app

curl -sS http://install.phpcomposer.com/installer | php  composer

這個是國內的版本。能夠看到很快就會下載好 dom


 

2.下載好了composer.phar以後,咱們沒法直接用composer命令,須要讓其在全局進行使用,須要將其移動到/usr/local/bin/ 文件目錄下面(而後咱們能夠本身作一個命名) curl

 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"

    }

}

相關文章
相關標籤/搜索