Composer - PHP依賴管理

Composer是 PHP 用來管理依賴的工具,提供了科學的第三方包的模塊化及更新方案。php

運行原理

  1. composer.json聲明項目依賴
  2. composer工具前往packagist.org倉庫獲取包的元數據信息
  3. composer工具根據元數據信息前往GitHub等代碼託管平臺獲取第三方包

安裝Composer

版本要求 PHP 5.3.2+git

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer  # 下載composer

composer config -g repo.packagist composer https://packagist.phpcomposer.com  # 全局配置composer源爲中國鏡像源

composer global require "hirak/prestissimo:^0.3"  # 全局安裝 」composer並行下載插件「

export PATH=$PATH:~/.composer/vendor/bin  # 全局composer庫執行路徑加入環境變量

sudo chmod a+x /usr/local/bin/composer  # 增長可執行權限

#### 平常升級composer ####
composer selfupdate

基本使用

新起Composer項目

  1. 常規啓動
    composer init -n 當前目錄建立空的composer.json文件
  2. 帶依賴啓動
    composer init --require=包名 -n

克隆一個包

composer create-project 包名 保存路徑 版本號

聲明依賴

  1. 命令描述
    composer require [--dev] 包名
  2. 配置文件描述
    編輯 composer.json

卸載依賴

composer remove 包名json

自動加載

應用啓動入口增長 require 'vendor/autoload.php';安全

安裝依賴

composer install --profile --prefer-dist --optimize-autoloader
  • --profile 顯示時間和內存使用信息
  • --optimize-autoloader 優化自動加載得到20%~25%提高
  • --prefer-dist 大幅加快下載速度 ,忽略包下的.git目錄從而回避對根目錄git系統的影響

更新依賴

  1. 只更新指定包
    composer update 包名 --prefer-dist
  2. 只刷新composer.lock,不更新依賴
    • 通用處理:composer update nothing
    • 新版處理:composer update --lock

版本鎖定

  • composer.lock來管理
  • 項目代碼須要版本鎖定
  • 庫代碼不該該版本鎖定

生產環境部署優化

  • 優化自動加載
  • composer dump-autoload --optimize

經常使用命令

composer show --installed # 已安裝的依賴 composer show -p # 已安裝的平臺軟件包(包括php拓展)bash

注意

  • composer在vendor目錄下安裝的子項目有其自身的git版本控制系統
  • 項目根下的git不對這些子項目進行管理
  • 若有管理需求則須要刪除子項目的.git目錄

非官方Repo引入方式

1. git版本庫
{
    "type":"git",
    "url":"ssh://....git"
}

2. path本地路徑
{
    "type":"path",
    "url":"包的相對路徑"
}

自動加載

  • 文件
{
		 "autoload": {
			 "files": [
				 "文件路徑",
			 ]
		 }
	}

源類型

  • composer
{
		"type": "composer",
		"url": "https://packagist.phpcomposer.com"
	}
  • git
{
		"type": "git",
		"url":  "git地址"
	}
  • path
{
		"type": "path",
		"url": "包的相對目錄路徑"
	}

語義話版本號

組成

  • Major.Minor.Patch
  • Major 大版本更新,不向後兼容
  • Minor小版本更新,向後兼容
  • Patch補丁修復,向後兼容

示例

  • 確切版本號 1.0.0
  • 範圍版本號 >=1.0.0
  • 通配符版本號 1.0.*
  • 向後兼容的最小版本(下一個重要版本)~
    • ~1.0 => 1.0<= X < 2.0
    • ~1.0.0 => 1.0.0<= X < 1.1
  • 大版本前的全部版本(下一個安全版本)^
    • ^1.0 => 1.0<= X < 2.0
    • ^1.0.0 => 1.0.0<= X < 2.0.0

建立Composer

流程

  1. 建立包目錄
  2. composer init初始化配置
  3. 實現包邏輯
  4. 第三方代碼託管平臺推送項目,並配置同步更新到packagist.org
  5. packagist.org提交項目地址
相關文章
相關標籤/搜索