composer的基本運用

Composer -- PHP依賴管理的新時代

1、簡介

  說到composer,絕大多數的開發人員都會用到。composer是一個什麼工具呢?php

  composer 是 PHP 用來管理依賴(dependency)關係的工具。它容許你申明項目所依賴的代碼庫,它會在你的項目中爲你安裝他們。git

  

  composer解決的是什麼問題?github

  在開發中,咱們可能會用到第三方庫,一個項目通常都是依賴若干個庫,而第三方庫可能也須要依賴另外一個第三方庫。那麼,誰來管理這種依賴關係呢,就是composer。它不只解決了庫的依賴關係,他還會根據環境,如PHP版本下載對應可支持的第三方庫的版本。
json

 

2、安裝

  想要使用,第一步確定就是安裝。那麼如何安裝呢?windows

  安裝前首先確保已經安裝了PHP並配置到環境變量中可全局使用(像集成環境的可能要手動配一下)。api

  windows+R打開運行輸入cmd打開控制檯,輸入「curl -sS https://getcomposer.org/installer | php」,這個前提是要下載curl,點擊http://curl.haxx.se/download下載最新版本安裝便可。app

  也可使用 "php -r "readfile('https://getcomposer.org/installer');" | php"命令,經過PHP下載安裝器。composer

  

  下載成功後會在當前目錄下生成一個composer.phar文件,即安裝成功。curl

  

  進入到文件所在目錄可輸入「php composer.phar」 查看composer的信息工具

  

  爲了方便,咱們能夠將composer.phar配置到全局變量中,這樣咱們全部的項目都能使用composer工具。配置後,只需使用composer命令便可,無需php composer.phar

  

 

3、使用

  如何使用呢,首先進入到項目的根目錄中,建立一個composer.json文件。

  格式以下

{
    "name": "wwj/demo",
    "description": "teach",
    "authors": [
        {
            "name": "githubwwjcn",
            "email": "xxxxxx@qq.com"
        }
    ],
    "require": {}
}

 

  也能夠在命令提示符窗口使用composer命令:composer init

  

  插件的安裝:

  能夠直接在json文件中的require字段中寫入插件名字

"require": {
        "monolog/monolog": "1.0.*"
    }

  而後在命令提示符窗口輸入命令:composer install,進行安裝插件,composer會自動安裝該插件所要依賴的全部第三方插件

  

  安裝成功,看目錄demo

  

  多出了一個vendor文件夾和一個composer.lock文件。

  首先說composer.lock文件,這個用來幹什麼呢?先來看看裏面的內容:

  

{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "ea169889a99da2e9cb5cb9911a50b7c5",
    "packages": [
        {
            "name": "monolog/monolog",
            "version": "1.0.2",
            "source": {
                "type": "git",
                "url": "https://github.com/Seldaek/monolog.git",
                "reference": "b704c49a3051536f67f2d39f13568f74615b9922"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b704c49a3051536f67f2d39f13568f74615b9922",
                "reference": "b704c49a3051536f67f2d39f13568f74615b9922",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
            },
            "type": "library",
            "autoload": {
                "psr-0": {
                    "Monolog": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Jordi Boggiano",
                    "email": "j.boggiano@seld.be",
                    "homepage": "http://seld.be",
                    "role": "Developer"
                }
            ],
            "description": "Logging for PHP 5.3",
            "homepage": "http://github.com/Seldaek/monolog",
            "keywords": [
                "log",
                "logging"
            ],
            "time": "2011-10-24T09:39:02+00:00"
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}

  composer.lock-鎖文件,在安裝依賴後,Composer 將把安裝時確切的版本號列表寫入 composer.lock 文件。這將鎖定改項目的特定版本。當再次安裝該項目的時候,composer首先會檢測是否存在composer.lock鎖文件,存在則按照鎖文件的插件的版本進行安裝,而不會安裝最新的版本;不存在,則按照composer.json,require裏面的版本要求進行安裝。

   再說vendor文件夾,你們估計也猜到確定就是存放插件的地方了

  如圖,,也包含了composer提供的插件加載功能autoload。

 

 

4、應用

  插件安裝後,如何在本身的項目中使用。很簡單,只需引入自動加載文件autoload.php。  

  require 'vendor/autoload.php';

  而後實例化該插件

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));

$log->addWarning('Foo');

 

  基礎的應用,應該就是這樣了,有錯提出來,我糾正一下~

相關文章
相關標籤/搜索