1. 程式人生 > >正確的 Composer 擴充套件包安裝方法

正確的 Composer 擴充套件包安裝方法

問題說明

我們經常要往現有的專案中新增擴充套件包,有時候因為文件的錯誤引導,如下圖來自 這個文件 的:

file

composer update 這個命令在我們現在的邏輯中,可能會對專案造成巨大傷害。

因為 composer update 的邏輯是按照 composer.json 指定的擴充套件包版本規則,把所有擴充套件包更新到最新版本,注意,是 所有擴充套件包,舉個例子,你在專案一開始的時候使用了 monolog,當時的配置資訊是

"monolog/monolog": "1.*",

安裝的是 monolog 1.1 版本,而一個多月以後的現在,monolog 已經是 1.2 了,執行命令後直接更新到 1.2,這時專案並沒有針對 1.2 進行過測試,專案一下子變得很不穩定,情況有時候會比這個更糟糕,尤其是在一個龐大的專案中,你沒有對專案寫完整覆蓋測試的情況,什麼東西壞掉了你都不知道。

那應該使用哪個命令呢?install, update 還是 require ?

接下來我們一一解釋。

簡單解釋

composer install - 如有 composer.lock 檔案,直接安裝,否則從 composer.json 安裝最新擴充套件包和依賴;
composer update - 從 composer.json 安裝最新擴充套件包和依賴;
composer update vendor/package - 從 composer.json 或者對應包的配置,並更新到最新;
composer require new/package - 新增安裝 new/package, 可以指定版本,如: composer require new
/package ~2.5.

流程

下來介紹幾個日常生產的流程,來方便加深大家的理解。

流程一:新專案流程
建立 composer.json,並新增依賴到的擴充套件包;
執行 composer install,安裝擴充套件包並生成 composer.lock;
提交 composer.lock 到程式碼版本控制器中,如:git;

流程二:專案協作者安裝現有專案
克隆專案後,根目錄下直接執行 composer install 從 composer.lock 中安裝 指定版本 的擴充套件包以及其依賴;

此流程適用於生產環境程式碼的部署。

流程三:為專案新增新擴充套件包

使用 composer require vendor/package 新增擴充套件包;
提交更新後的 composer.json 和 composer.lock 到程式碼版本控制器中,如:git;

關於 composer.lock 檔案

composer.lock 檔案裡儲存著對每一個程式碼依賴的版本記錄(見下圖),提交到版本控制器中,並配合composer install 使用,保證了團隊所有協作者開發環境、線上生產環境中執行的程式碼版本的一致性。

這裡寫圖片描述

關於擴充套件包的安裝方法

那麼,準備新增一個擴充套件包,install, update, require 三個命令都可以用來安裝擴充套件包,選擇哪一個才是正確的呢?

答案是:使用 composer require 命令

另外,在手動修改 composer.json 新增擴充套件包後,composer update new/package 進行指定擴充套件包更新的方式,也可以正確的安裝,不過不建議使用這種方法,因為,一旦你忘記敲定後面的擴充套件包名,就會進入萬劫不復的狀態,別給自己留坑呀。

上面的概念不論對新手或者老手來說,都比較混淆,主要記住這個概念:

原有專案新新增擴充套件的,都使用 composer require new/package 這種方式來安裝。

需要加版本的話

composer require "foo/bar:1.0.0"

更新指定擴充套件到指定版本

有時候你之前使用過的擴充套件包,加入了新功能,你想更新單獨這個擴充套件包到指定版本,也可以使用 require 來操作。

如下面例子,需要更新 “sami/sami”: “3.0.” 到 “sami/sami”: “3.2.”
這裡寫圖片描述

命令列執行:
這裡寫圖片描述

相關推薦

正確Composer 擴充套件安裝方法

問題說明 我們經常要往現有的專案中新增擴充套件包,有時候因為文件的錯誤引導,如下圖來自 這個文件 的: composer update 這個命令在我們現在的邏輯中,可能會對專案造成巨大傷害。 因為 composer update 的邏輯是按照 comp

正確Composer 擴充套件安裝方法composer install 和update、require

問題說明 我們經常要往現有的專案中新增擴充套件包,有時候因為文件的錯誤引導,如下圖來自 這個文件 的: composer update 這個命令在我們現在的邏輯中,可能會對專案造成巨大傷害。 因為 composer update 的邏輯是按照 composer.

Ubuntu 16.04 安裝opencv的各種方法(含opencv contrib擴充套件安裝方法

C++介面安裝 採用原始碼編譯的安裝方式,基本也就是這種方法了,首先在官網下載你想安裝的版本的opencv壓縮包,下載連線如下: https://github.com/opencv/opencv/releases 首先,安裝一些依賴,根據自己的情況選擇,如果不知道自己安裝

Composer 擴展安裝方法

說明 nbsp foo 令行 src 應該 技術分享 配置 控制器 問題說明 我們經常要往現有的項目中添加擴展包,有時候因為文檔的錯誤引導,如下圖來自 這個文檔 的: composer update 這個命令在我們現在的邏輯中,可能會對項目造成巨大傷害。 因為 compo

MariaDB的二進制安裝方法

.org 避免 解決 所有 註意 初始化 -1 並且 start     軟件包的安裝方式有三種:源碼包安裝、二進制包安裝、rpm包安裝。這三種安裝方法都各有優劣。RPM安裝:適合小環境,核心功能都具備,快速搭建環境,但它的版本一般都不會太高;二進制安裝:它是發布出來時預先

eclipse4.7中文安裝方法

cnblogs rop zip http .cn 分享 es2017 www. pin 第一步:打開http://www.eclipse.org/babel/。 第二步:找到downloads。 第三步:點擊Oxygen。 第四步:找到簡體中文的zip插件並兵下載。

軟件安裝方法、rpm介紹、rpm、yum、

yum rpm安裝軟件包的三種方法window的exe文件就是二進制包,不能使用記事本文本打開。Linux下的ls命令文件也是二進制的。 rpm工具。類似Windows的exe源碼包 就是源代碼。需要編譯器編譯可執行文件Yum工具 操作的是rpm包。Yum工具是Python開發。自動安裝依賴的包。Yum就像

zend studio 13.6.1漢化安裝方法

inf 鏈接 span 安裝 技術 img com size 出現 1、這裏介紹的是離線漢化包的安裝,在線漢化安裝總是失敗,還是離線的方便 2、漢化安裝過程中系統可能會彈出報錯,忽略就可以(反正我現在就是忽略了在用著) 下面圖片中的鏈接就是在線安裝的鏈

windows下mysql壓縮安裝方法

root 壓縮包 服務端 環境變量 環境 span 目錄 com down windows下MySQL安裝壓縮包安裝方法: 1、網址:https://dev.mysql.com/downloads/mysql/,進入官網下載壓縮包版本。 2、解壓完成後在bin目錄的同級目錄

PHP擴充套件安裝

安裝glpi,遇到PHP擴充套件包未安裝的情況: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  rpm -Uvh https://mirror.webtat

linux下mysql5.7二進位制安裝方法

1、 新建/usr/local/src目錄,儲存下載的各類安裝包 # mkdir /usr/local/src 2、切換到/usr/local/src 下 # cd /usr/local/src 3、下載mysql5.7二進位制包 # wget http://mirro

擴充套件安裝問題:module 'pip' has no attribute 'main'

找到安裝目錄下 helpers/packaging_tool.py檔案,找到如下程式碼: def do_install(pkgs): try: import pip except ImportError: erro

laravel composer 擴充套件開發(超詳細)

原文章寫在自己的部落格: http://blog.share345.com/2018/02/05/laravel-package-development.html 文章適用於laravel 包開發,當然如果你理解著完成一遍,就可以發現他也適用於 compose

Ubuntu下幾種格式的安裝安裝方法

1. .deb格式 雙擊開啟直接安裝。 在新版本ubuntu中由於移除啦ubuntu軟體中心,並替換成Gnome軟體(又改名為ubuntu軟體),導致無法直接安裝,可使用下面的命令安裝(假設安裝包位於/home/a1eafall) $sudo dpkg

ThinkPHP開發必備composer擴充套件

本文介紹幾個有助於提高開發效率和質量的ThinkPHP專用composer包, 它們都是packgist上最流行的composer包為與ThinkPHP進行無縫整合而特別封裝. 安裝後, 無需修改框架原始碼, 無需或僅需修改一下配置檔案, 便立即可用.

laravel 5.2 框架與vendor擴充套件安裝使用心得

2、vendor擴充套件包安裝 1)首次安裝使用命令:composer install 注意: 新增需要的擴充套件包到自己的composer.json檔案的require裡: "

firefox火狐瀏覽器語言設定(Firefox中文安裝方法

然後把該xpi檔案用7-zip或Universal Extractor之類的壓縮軟體解壓出來,找到解壓出來的資料夾內的chrome.manifest這個檔案,然後用文字編輯軟體開啟,用文字編輯器自帶的替換功能把"jar:chrome" 全部替換為"jar:"(Firefox3.5使用者請把"jar:chro

Linux vsftpd(ftp)安裝安裝方法

最近在ubuntu上安裝ftp在網上搜了好多方法都是線上安裝,後來下載一個安裝包,參考裡面的INSTALL檔案成功安裝,下面說下安裝步驟。 安裝包地址:http://download.csdn.net/detail/a29562268/9852454!

通過composer安裝擴充套件時,提示[Composer\Exception\NoSslException]

在安裝位置通過命令列,開啟composer 安裝擴充套件包時提示 報錯 [Composer\Exception\NoSslException] The openssl extension is required for SSL/TLS protection but is not av

下載谷歌瀏覽器(Chrome)擴充套件程式安裝crx檔案的方法

1.開啟擴充套件介紹頁面 (在 三道槓圖示>工具>擴充套件程式 裡相應擴充套件的"訪問網站"處也可以獲得) 如:"https://chrome.google.com/webstore/detail/%E8%B0%B7%E6%AD%8C%E6%9C%8D%E5%8A%A1%E