如何正确使用 Composer 安装 Laravel 扩展包

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

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.

流程

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

流程一:新项目流程

  1. 创建 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 这种方式来安装。

完。

时间: 2024-10-04 21:37:07

如何正确使用 Composer 安装 Laravel 扩展包的相关文章

如何开发 Laravel 扩展包并发布到 Composer

如何开发 Laravel 扩展包并发布到 Composer 发布于 2019-01-22 cxp1539  1074 Vie 开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的laravel扩展包.其实原理就是我们自己去写一个服务提供者,把服务提供者配置到app/providers数组中. 1.第一步现在自己项目中跟目录创建packages/cxp/avatar/src 2.修改 composer.json "psr-4": { "App\\": "

windows环境下安装composer,然后使用composer安装Laravel

Composer 不是一个包管理器,它仅仅是一个依赖管理工具,它允许你申明项目所依赖的代码库,并在你的项目中安装这些代码库.它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装.默认情况下它不会在全局安装任何东西.注意:composer要求PHP版本在5.3及以上,才能支持!下载composer官网下载:https://getcomposer.org/download/ (可能下载不了,国内你懂得)网盘下载:

如何开发、本地测试、发布 Laravel 扩展包?

 Laravel/ 1年前/  4022 /  11 现在已经有了很多,关于如何开发 Laravel 扩展包的文章.但是大多文章写的太过片面,不够完整,而且我在实际进行开发扩展包的时候,还是遇到了很多的问题,我把自己的开发经验,以及遇到的问题记录下来,分享给大家. 扩展包开发 1. 创建新项目,初始化扩展包配置 首先创建一个新的 Laravel 项目: composer create-project laravel/laravel laradmin -vvv 接下来在此项目中,创建目录 pack

使用composer安装laravel

更具官方文档说:Laravel utilizes Composer to manage its dependencies. So, before using Laravel, you will need to make sure you have Composer installed on your machine. 参考文档:https://laravel.com/docs/5.0 按照文档说明执行,安装速度真是超级慢.我一度认为是安装出现了错误.下面是我安装的截图. 一共出现了三次信息提示.

composer安装laravel指定版本

版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/qq_38125058/article/details/79126051 首先安装composer,附安装地址(https://getcomposer.org/download/) composer安装laravel指定版本命令: composer create-project –prefer-dist laravel/laravel test 默认安装最新版本,如想安装指定版本,在其后追加指定的版本

Python 使用 distutils 工具安装的扩展包的卸载

Python 编写完扩展包并 build 好后,可以采用 $ sudo ./setup.py install 安装.采用这种方式安装的扩展包,可以使用 pip list 查看到,但不能直接使用 pip uninstall 卸载,pip 会明确提示这种安装包卸载不干净. 一个迂回的方法是: 1) 在 install 的时候写 log 文件,这里取任意文件名为 install.log,如下命令, $ sudo ./setup.py install --record install.log 这样安装完

ubuntu16.04安装php扩展包

有些第三方库需要安装php扩展包,比如zip的扩展.当初安装excel插件需要这个包,找了很多资料.看到文档很蛋疼,基本上到处粘贴复制的,参考价值不大.今天又遇到这个问题,就随手记录下来,避免遗忘了.因为挺简单的,所以没怎么记录,但要用起来就不知道怎么敲键盘了.好了废话不多说,办正事:比如要安装zip包,先查看php版本,php -v ,然后安装zip扩展,apt install php7.1-zip回车就好了.其他扩展包以此类推:apt install php版本号-扩展包名. 原文地址:ht

ArcGIS Python 安装其它扩展包(Windows与Linux)

ArcGIS Python 安装其它扩展包(Windows与Linux) 下载 ? https://pypi.org/project/setuptools/#files ? setuptools-40.6.2.zip ? https://pypi.org/project/pip/#files ? pip-18.1.tar.gz ? 解压 ? ? 安装 setuptools ArcGIS Desktop(Windows) ? cd D:\software\setuptools-40.6.2 ? C

composer 安装Laravel (win10)

服务器要求 Laravel 对系统有一些要求.当然,所有这些要求 Laravel Homestead 虚拟机都能满足,因此强烈推荐你使用 Homestead 最为你的开发环境. 当然,假如你不使用 Homestead,请确保你的服务器满足以下要求: PHP >= 7.1.3 OpenSSL PHP 拓展 PDO PHP 拓展 Mbstring PHP 拓展 Tokenizer PHP 拓展 XML PHP 拓展 Ctype PHP 拓展 JSON PHP 拓展 BCMath PHP 拓展 安装