laravel 安装 Laravel 扩展包

摘要:
关于扩展包的安装方法那么,准备添加一个扩展包,install,update,require三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?

问题说明

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

laravel 安装 Laravel 扩展包第1张

composer update这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。

因为composer update的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是所有扩展包,举个例子,你在项目一开始的时候使用了 monolog,当时的配置信息是

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

安装的是 monolog 1.1 版本,而一个多月以后的现在,monolog 已经是 1.2 了,运行命令后直接更新到 1.2,这时项目并没有针对 1.2 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道。

那应该使用哪个命令呢?install, update 还是 require ?

laravel 安装 Laravel 扩展包第2张

接下来我们一一解释。

简单解释

  • 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.

流程

接下来介绍几个日常生产的流程,来方便加深大家的理解。

流程一:新项目流程

  1. 创建composer.json,并添加依赖到的扩展包;
    • 运行composer install,安装扩展包并生成composer.lock
    • 提交composer.lock到代码版本控制器中,如:git;

流程二:项目协作者安装现有项目

  • 克隆项目后,根目录下直接运行composer installcomposer.lock中安装指定版本的扩展包以及其依赖;

此流程适用于生产环境代码的部署。

流程三:为项目添加新扩展包

  • 使用composer require vendor/package添加扩展包;
  • 提交更新后的composer.jsoncomposer.lock到代码版本控制器中,如:git;

关于 composer.lock 文件

composer.lock文件里保存着对每一个代码依赖的版本记录(见下图),提交到版本控制器中,并配合composer install使用,保证了团队所有协作者开发环境、线上生产环境中运行的代码版本的一致性。

laravel 安装 Laravel 扩展包第3张

关于扩展包的安装方法

那么,准备添加一个扩展包,install, update, require 三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?

答案是:使用composer require命令

另外,在手动修改 composer.json 添加扩展包后,composer update new/package进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名,就会进入万劫不复的状态,别给自己留坑呀。

上面的概念不论对新手或者老手来说,都比较混淆,主要记住这个概念:

原有项目新添加扩展的,都使用composer require new/package这种方式来安装。

原文链接http://www.tuicool.com/articles/riYbm2b

免责声明:文章转载自《laravel 安装 Laravel 扩展包》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇37岁老码农现身说法:那些年,我走过的弯路基于canvas实现合图引擎 设计思路下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ubuntu 系统/boot 内存不够无法更新(apt-get update)

输入命令:sudo apt-get install 报错: gzip: stdout: No space left on device E: mkinitramfs failure cpio 141 gzip 1update-initramfs: failed for /boot/initrd.img-4.15.0-72-generic with 1. d...

shell脚本之nginx的安装

       为了编写nginx自动部署的脚本而刚学习的shell脚本语言。写文章只是为了记录,有错误勿喷。 一、创建shell脚本程序        操作系统是Linux的 CentOS 7 版本。解释器默认使用 bash 。        首先是使用vim命令创建一个shell脚本程序。            vim nginx-install.sh ...

SQL 入门教程:更新(UPDATE)数据

目录 请参阅 目录汇总:SQL 零基础入门教程 更新(修改)表中的数据,可以使用 UPDATE 语句。有两种使用 UPDATE 的方式: 更新表中的特定行; 更新表中的所有行。 下面分别介绍。 注意:不要省略 WHERE 子句 在使用 UPDATE 时一定要细心。因为稍不注意,就会更新表中的所有行。使用这条语句前,请完整地阅读本文。 提示...

linux下不用空格执行带参数的5种姿势

在搞安全的时候经常会遇到代码/命令执行,不能用空格的情况,总结了几种的绕过方法。 1.!! 1 [root@iZ28wg1kditZ tmp]# pwd 2 /tmp 3 [root@iZ28wg1kditZ tmp]# !! 4 pwd 5 /tmp 6 [root@iZ28wg1kditZ tmp]# 2.$IFS 1 [root@iZ2...

Centos中安装ENVI5.1

参考http://bbs.06climate.com/forum.php?mod=viewthread&tid=21896&extra=&page=1 在虚拟机VMware的centos7.1系统中安装ENVI5.1: 1、yum install libXp 2、yum install libXpm 3、yum install re...

ubuntu18.04server服务器系统下为python安装虚拟显示器 (使用jupyter notebook在web端播放openai的gym下保存的运行视频——需安装ipython)

1. 安装xvfb sudo apt-get install xvfb Xvfb是流行的虚拟现实库,可以使很多需要图形界面的程序虚拟运行。 2. 安装pyvirtualdisplay pyvirtualdisplay 是Xvfb的 python 封装。 pip install pyvirtualdisplay 3. 在 Ubuntu 上安装OpenGL...