下面由composer教程栏目给大家介绍正确的 Composer 扩展包安装方法,希望对需要的朋友有所帮助!

问题说明

我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的:

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 php 扩展,正确的Composer扩展包安装方法相关推荐

  1. mysql.8.0.13ZIP安装教程_关于mysql 8.0.13zip包安装方法

    mysql 8.0.13默认有一个data文件夹,这个文件夹得删了,不然安装服务时候会有日志文件提示报错: Failed to find valid data directory. Data Dict ...

  2. gitlab rpm包安装方法

    gitlab rpm包安装方法 当前安装方式适合centOs7版本,需要有root权限,如果当前用户不是root用户,需要配置当前用户的sudo 1. yum install -y curl poli ...

  3. Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!

    点评:分两种情况: 先看这篇转过来的文章,俺老孙懒得写了. Linux软件安装通用思路 在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它 ...

  4. 如何在vsc上下载php扩展包,正确的 Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  5. 正确的 Composer 扩展包安装方法composer install 和update、require

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  6. linux安装更换yum源,更换YUM源,更换扩展源,源码包安装

    更换yum 源 将系统默认的安装源修改成国内的安装源 更换 更换扩展源 扩展源里有很多默认源没有的安装包 yum install -y epel-release yum 下载rpm 包 只下载不安装 ...

  7. python第三方包安装方法(两种方法)

    具体有以下两种方法: 第一种方法(不使用pip或者easy_install): Step1:在网上找到的需要的包,下载下来.eg. rsa-3.1.4.tar.gz Step2:解压缩该文件. Ste ...

  8. Ubuntu .deb包安装方法

    使用apt-get方法安装的软件,所有下载的deb包都缓存到了/var/cache/apt/archives目录下了,所以可以把常用的deb包备份出来,甚至做成ISO工具包.刻盘,以后安装Ubuntu ...

  9. MariaDB的二进制包安装方法

    软件包的安装方式有三种:源码包安装.二进制包安装.rpm包安装.这三种安装方法都各有优劣.RPM安装:适合小环境,核心功能都具备,快速搭建环境,但它的版本一般都不会太高:二进制安装:它是发布出来时预先 ...

最新文章

  1. javascript小数四舍五入
  2. POJ 1765 November Rain
  3. python2 openpyxl 复制excel内容到新的excel文件中 告警问题
  4. 跟我学 Java 8 新特性之 Stream 流(五)映射
  5. 3.11 SE11创建搜索帮助
  6. leetcode-Basic Calculator-224
  7. 斯坦福大学面向Tensorflow深度学习研究课程(2018)
  8. 十六进制转为float,float转为二进制
  9. 小米、搜狗、TW等机器学习算法工程师面试总结
  10. snapchat 登录不上_如何在Snapchat上阻止某人
  11. word怎么去掉页眉和页脚
  12. 浏览器导航被劫持解决方法
  13. elasticsearch6.5.4破解白金版xpack
  14. 使用汉明距离、LAB色彩空间相似性来衡量图片相似性
  15. Linux软件仓库的搭建
  16. NDK_PROJECT_PATH = null问题分析
  17. java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
  18. 页面性能优化,如何减少回流
  19. 28.文本处理三剑客grep,sed,awk
  20. OneDrive 大文件如何同步上传,利用mklink创建软连接

热门文章

  1. 3种方式获取Wifi名称 兼容获取Wifi名字为空 WifiInfo.getSSID为空的情况
  2. 十二星座最怕失去的东西
  3. VUE酒店日期选择,时间段选择插件vue-mobile-calendar使用
  4. Unity3d开发MOBA游戏类《王者荣耀》记录(一)
  5. Android手机app的adb命令测试电量
  6. moses gcc link failed
  7. spring tx:advice(转)
  8. springboot+hutool批量生成二维码压缩导出
  9. java resultful风格接收参数
  10. TestFlight应用