【PHP】Composer使用简介,composer install 和 update 区别
1、composer是php的依赖包管理工具
2、符合PSR-0/1/2/3/4 规范
3、composer安装推荐使用国内镜像
4、composer require/install/update 区别:
然而,对于如何『安装他们』,新手可能并不清楚。网上的答案有的说 composer install,有的说composer update,而这两者似乎都能成功把依赖下载下来并安装好,那么他们究竟有何区别呢?
首先要搞清楚的一件事情是,所有的依赖都定义在composer.json中,手册中给出了一些基本用法和例子。你可能已经注意到,在指定版本号的时候,我们并不一定要指明一个精确的版本。那么就有可能发生这么一个情况,对于同一份composer.json,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份依赖),从而导致一些异常情况。composer update和composer install正是为了解决这个问题而出现的。
当你执行composer update的时候,composer会去读取composer.json中指定的依赖,去分析他们,并且去拉取符合条件最新版本的依赖。然后他会把所拉取到的依赖放入vendor目录下,并且把所有拉取的依赖的精确版本号写入composer.lock文件中。
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来更新下你的依赖了。
如果你不希望影响别的已经安装的依赖,仅仅更新你修改的部分,那你可以通过指定白名单来确定要更新的范围,例如:(tp5的queue队列包示例:从v1.1.4-->>v1.1.6)
先修改composer.json 指定包的版本号:
然后cli模式执行命令:
composer update topthink/think-queue=v1.1.6
仅会更新 topthink/think-queue 这个依赖,别的依赖哪怕有更新也会被忽略。
效果:
【PHP】Composer使用简介,composer install 和 update 区别的更多相关文章
- composer命令介绍之install和update及其区别
composer 是 php 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 然而,对于如何『安装他们』,新手可能并不清楚.网上的答案有的说 composer in ...
- 两张图搞清composer install与update区别 - 今日头条(www.toutiao.com)
composer update : 主要是在开发阶段使用,根据我们在composer.json文件中指定的内容升级项目的依赖包. composer install : 主要是在部署阶段使用,以便在生产 ...
- composer install或者update 出错
composer install或者update 出错Your requirements could not be resolved to an installable set of package ...
- composer install 或 update 速度慢的解决方案(composer加速)
我们在使用composer install和composer update时,有的时候安装和更新速度非常慢,我们可以通过下面的几个方法来解决这个问题. 首先查看一下当前的 composer 全局配置地 ...
- Composer 的简介、安装及使用
Composer的简介 简单说,Composer 就是一个安装包管理工具,服务于 PHP 生态系统.它包括了两个部分:Composer 和 Packagist. Composer Composer 是 ...
- 如何在mac上安装composer(How to install composer on the Mac)
Change into a directory in your path like cd /usr/local/bin Get Composer curl -sS https://getcompose ...
- 加快compser install 和update的方法
加快compser install 和update的方法: 可以进入composer国内镜像里面进行参考 如下是修改composer.json文件来实现(在json配置的最后加上如下代码) " ...
- linux下安装composer以及使用composer安装laravel
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/nianzhi1202/article/details/72770099 一.安装composer之前 ...
- win10使用Composer-Setup安装Composer以及使用Composer安装Yii2最新版
1:下载 ca-bundle.crt和cacert.pem 将这两个文件放在php目录下 2:php.ini中添加上述两个文件的路径 curl.cainfo=C:/xampp/php/ca-bundl ...
随机推荐
- [原创]java WEB学习笔记22:MVC案例完整实践(part 3)---多个请求对应一个Servlet解析
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- mysql高可用研究(二) 主从+MHA+Atlas
关于Atlas的详细介绍请访问:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md 为什么要使用Atlas?应用程序直连数据库不好吗? ...
- P4022 [CTSC2012]熟悉的文章
题目 P4022 [CTSC2012]熟悉的文章 题目大意:多个文本串,多个匹配串,我们求\(L\),\(L\)指(匹配串中\(≥L\)长度的子串出现在文本串才为"熟悉",使得匹配 ...
- LINQ 学习路程 -- 开篇
Enumerable: Queryable:
- 中美贸易战再次开启,世界两极化进程正在加快形成!..... Copyright: 1688澳洲新闻网 Read more at: https://www.1688.com.au/world/international/2018/06/17/369368/
中美贸易战再次开启,世界两极化进程正在加快形成! https://www.1688.com.au/world/international/2018/06/17/369368/
- 第二天(1)声明式验证之使用验证框架验证域模型和ModelDriven验证
有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下: package data; public class User { private String name ...
- vue2.0 构建单页应用最佳实战
vue2.0 构建单页应用最佳实战 前言 我们将会选择使用一些 vue 周边的库vue-cli, vue-router,vue-resource,vuex 1.使用 vue-cli 创建项目2.使 ...
- phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建
phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...
- invalid constant type: 18
javassist 3.18以下的版本不支持在JDK1.8下运行
- 利用Hibernate 框架,实现对数据库的增删改查
增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...