composer的原理和正确使用(最新)
曾经我对于composer的原理等没有深入了解,只是知道简单的使用,现在深入研究了一下,在此记录一下,深入了解才能了如指掌。
- composer的作用
- composer命令介绍之install和update及其区别
- composer版本号
- composer自动加载原理源码分析
- Composer 升级到 2.0 版本,有哪些功能是你必知的?
- Composer 卸载与升级与降级
以上几篇文章,深入的讲解了compser的作用原理使用等,需要的小伙伴自行查看阅读哈,还有官方使用手册哦,在 基本用法 | Composer 中文文档 | Composer 中文网
下面讲解一下,程序员经常使用的部分。
composer 是 php 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
然而,对于如何『安装他们』,新手可能并不清楚。网上的答案有的说 composer install
,有的说composer update
,而这两者似乎都能成功把依赖下载下来并安装好,那么他们究竟有何区别呢?
首先要搞清楚的一件事情是,所有的依赖都定义在composer.json
中,手册中给出了一些基本用法和例子。你可能已经注意到,在指定版本号的时候,我们并不一定要指明一个精确的版本。
那么就有可能发生这么一个情况,对于同一份composer.json
,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份依赖),从而导致一些异常情况。
composer update
和composer install
正是为了解决这个问题而出现的。
1、当你执行composer update
的时候,composer会去读取composer.json
中指定的依赖,去分析他们,并且去拉取符合条件最新版本的依赖。
然后他会把所拉取到的依赖放入vendor目录下,并且把所有拉取的依赖的精确版本号写入composer.lock
文件中。
2、composer install
所执行的事情非常类似,只在第一步的时候有差别。当你本地如果已经存在一份composer.lock
时,
它将会去读取你的composer.lock
而非composer.json
,并且以此为标准去下载依赖。
当你本地没有composer.lock
的时候,它所做的事情和composer update
其实并没有区别。
这意味着,只要你本地有一份composer.lock
,你就可以保证无论过去了多久,你都能拉到相同的依赖。而如果你把它纳入你的项目的版本控制中,
那么你就可以确保你项目中的每一个人、每一台电脑,
不管什么系统,都能拉取到一模一样的依赖,以减少潜在的依赖对部署的影响。当然,请记得,你应该使用的命令是composer install
。
那什么时候该使用composer update
呢?当你修改了你的依赖关系,不管是新增了依赖,还是修改了依赖的版本,又或者是删除了依赖,
这时候如果你执行composer install
的时候,是不会有任何变更的,但你会得到一个警告信息
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
有人可能会很好奇php是怎么知道我修改了依赖,或者composer.lock
已经过期了。很简单,如果你打开composer.lock
的话,
会发现其中有一个hash字段,这就是当时对应的那份依赖的哈希值。如果值不一致自然而然就知道发生了变更了。
这时候,你应该去通过composer update
来更新下你的依赖了。
如果你不希望影响别的已经安装的依赖,仅仅更新你修改的部分,那你可以通过指定白名单来确定要更新的范围,
例如composer update monolog/monolog
仅会更新monolog/monlog这个依赖,别的依赖哪怕有更新也会被忽略。
我们一般使用composer require monolog/monolog 版本号 去下载拓展 或者 composer update monolog/monolog 版本号 去更新拓展。我们一般使用composer install,确实需要使用composer update的话,再使用。
composer的原理和正确使用(最新)相关推荐
- composer的原理
转 Composer的原理 2018年05月14日 14:00:43 do better myself 阅读数 1763 Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器 ...
- 气动调节阀原理如何正确安装
气动调节阀原理如何正确安装 控制阀一般由电动执行机构或气动执行机构与阀体组成.直行程主要有直单座式和直双座式.后者具有循环容量大.不平衡力小.运行稳定等特点,特别适用于大流量.高压降.泄漏小的场合.角 ...
- retrofit原理面试,2021最新百度、头条等公司Android社招面试题目,含答案解析
基本情况 硕士生,Android开发岗 此文主要是2021年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团,网易等offer 主要包括阿里4面,腾讯8面,字节3面,百度3面,美 ...
- 书写php代码能使用的正确形式,最新PHP技术笔试练习题
最新PHP技术笔试练习题 茂盛的禾苗需要水分;成长的少年需要学习.以下是小编为大家搜索整理的最新PHP技术笔试练习题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 一.不定项选择 ...
- 计算机专业的会网盘扩容吗,网盘扩容是什么原理?百度云最新扩容技术解析!...
因为他们的网络磁盘已扩展. 网络磁盘扩展的原理是什么? 原理很简单:我们将大量"鬼文件"(也称为占位符文件)存储到您的磁盘中.这些文件中的每个文件大小均为300G,通常不会占用联机 ...
- Android热修复技术原理详解(最新最全版本)
本文框架 什么是热修复? 热修复框架分类 技术原理及特点 Tinker框架解析 各框架对比图 总结 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单 ...
- 关于微型计算机的原理 叙述正确的是,微型计算机原理练习附答案概念.doc
复习提纲 1.两个4字节的无符号数分别存放在从2000H和2010H开始的存储单元中,编写程序完成它们的相加操作,并将所求的和放在从2000H开始的内存单元中. 2.设在2000H开始的内存单元中,存 ...
- Composer 篇
学习网站 Composer 中文网 资源包 Packagist Packagist / Composer 中国全量镜像 如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装 ...
- composer详解
一.composer简介 什么是Composer Composer 是 PHP 的一个依赖管理工具,它涉及 "packages" 和 "libraries",简 ...
最新文章
- 线段树 + 树形换根 + dfs序 ---- 离线启发式求解 (有点像树上启发式合并答案) F. Nearest Leaf
- abaqus分析用户手册单元卷_作用卷、分析卷、材料卷三件套,让你也能熟练应用Abaqus...
- ssh跳板登陆太麻烦,使用expect每次自动登录 利用expect 模拟键盘动作,在闲置时间之内模拟地给个键盘响应...
- 南安出台行动方案推进智慧城市建设
- sklearn-GridSearchCV调节超参数
- SAP BPC系统架构
- 编译Linux内核的详细过程
- 从流量控制算法谈网络优化-TCP核心原理理解
- 【转】HTML - embed 与 object 之争
- (转)Django ==== 实战学习篇九 在session中保存购物车
- ASP.NET Core和Blazor Code Venture:配置Azure AD身份验证
- Oracle Database 12c 新特性:RAC Cluster Hub Node 和 Leaf Node
- 基于Spark机器学习和实时流计算的智能推荐系统
- IOMMU简述-上篇
- Android开发环境配置
- 原来创业也可以这样:80后乞丐网上卖烧烤 500元起家赚了400万
- Mysql 复制表结构
- The machine learning algorithm cheat sheet
- win10 C盘突然少了许多空间解决办法
- 密码学系列之:NIST和SHA算法