版本号定义和依赖(composer、package等等)的~,^区别

Composer install vs update vs require:别再傻傻分不清,一篇讲透核心命令使用场景 本文深入解析Composer的install、update和require命令的核心区别与应用场景,帮助开发者避免常见错误。通过文件系统三角关系和版本约束语义化讲解,提供项目初始化、依赖添加和生产环境部署的最佳实践,确保依赖管理的安全与高效。 阅读详情

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

语义化版本 2.0.0 https://semver.org/lang/zh-CN/

 

~表示版本号只能改变最末尾那段(如果是 ~x.y 末尾就是 y,如果是 ~x.y.z 末尾就是 z)
~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0
~1.2   代表  1.2 <= 版本号 <2.0

^表示除了大版本号以外,小版本号和补丁版本号都可以变
^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0

特殊情况0开头的版本号:
^0.3.0 等于 0.3.0 <= 版本号 <0.4.0  注意:不是 <1.0.0
因为:semantic versioning 的规定是,大版本号以 0 开头表示这是一个非稳定版本(unstable),如果处于非稳定状态,小版本号是允许不向下兼容的,
所以如果你要指定 0 开头的库那一定要注意:
危险写法:~0.1 等于 0.1.0 <= 版本号 <1.0.0
保险写法:^0.1 等于 0.1.0 <= 版本号 <0.2.0

Composer安装后别急着`require`!先搞懂`install`、`update`和`lock`文件的那些坑 本文深入解析Composer依赖管理的核心机制,重点对比`install`、`update`和`require`命令的差异与适用场景,揭示`composer.lock`文件在确保项目稳定性中的关键作用,并提供生产环境最佳实践与常见问题解决方案,帮助PHP开发者规避依赖管理中的潜在风险。 阅读详情

相关推荐

Ubuntu 22.04 下 Composer 2.5 安装与 PHP 扩展依赖详解

Composer 是 PHP 生态的核心依赖管理工具,其本质是基于 PSR-4 自动加载与 SHA256 包校验的契约执行系统。它依赖 json、mbstring、openssl、zip 等 PHP 扩展实现配置解析、HTTPS 通信与 ZIP 包解压,而非常规理解的‘类 npm 工具’。在 Ubuntu 22.04(默认 PHP 8.1 + OpenSSL 3.0)环境下,Composer 2.5 因强制 SHA256 校验和并行下载机制,成为兼容性刚需;若缺失 php-zip 或系统 unzip 命令,

weixin_34292402的博客 535

版本号定义和composer依赖版本符号~,^

版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 语义化版本 2.0.0 https://semver.org/lang/zh-CN/   ~表示版本号只能改变最末尾那段...

sunhaijingxiaohai的专栏 2219

Ubuntu 20.04 下 Composer 安装与使用全指南

Composer 是 PHP 生态中实现依赖管理与自动加载的核心工具,其原理基于语义化版本约束、PSR-4 自动加载规范和 vendor 目录隔离机制。它通过声明式 `composer.json` 配置替代传统手动维护扩展路径与 include 顺序,显著提升项目可复现性与协作效率。在 Ubuntu 20.04 这类 LTS 系统上,Composer 的价值尤为突出——既要兼容系统级 PHP 7.4 的稳定性,又要支撑 Laravel、Symfony 等现代框架对 PHP 8+ 的需求。技术实践中需规避 `

weixin_30235225的博客 316

composer 设置版本号_composer包版本命名及限定规则

版本命名规则:[name].x.y.z-[state]name为可选字段,一般为v,表示 versionx.y.z为各版本的序号,遵循语义化版本命名规范实际上基于此规范,不应该在版本前出现 name 字段.state可选字段,表示版本状态,例如b表示 beta 测试版,其他常见状态,后有详述x、y、z含义0.y.z表示开发阶段,一切可能随时改变,非稳定版。1.0.0界定此版本为初始稳定版,后面的一...

weixin_39589253的博客 849

Ubuntu 16.04下Composer安装与PHP依赖管理实战指南

Composer是PHP项目中实现依赖管理的核心工具,其本质是基于语义化版本约束、包仓库协议(如packagist.org)和自动加载规范(PSR-4)构建的可复现依赖装配系统。在Ubuntu 16.04这类长期支持但已停止维护的系统上,PHP 7.0环境存在扩展缺失、证书过期、opcache CLI配置冲突及systemd临时目录隔离等底层兼容性问题,导致composer install或update频繁失败。技术价值在于建立稳定、可审计的类库集成流水线;典型应用场景包括遗留Symfony/Laravel

weixin_30587927的博客 539

别再只会composer install了!从镜像配置到常用命令,这份PHP包管理保姆级指南请收好

本文深入解析PHP包管理工具Composer的高效使用技巧,从镜像配置到生产环境最佳实践。详细介绍了全局与项目级镜像配置、常用命令区别、版本控制策略及生产部署优化方法,帮助开发者从基础使用进阶到精通,特别适合Laravel和ThinkPHP开发者提升开发效率。

aikunjiao3421的博客 397

composer升级_composer 安装及使用

1、安装:composer的安装就不用多说了,官网下载或者直接yum安装。2、常用命令:1)配置为国内镜像仓库composer config -g repo.packagist composer https://packagist.phpcomposer.com2)安装工具库 require/install/*composer require 包名 版本号,例如安装thinkphp*/ comp...

weixin_39600510的博客 432

Debian 11 安装 Composer 全流程:环境配置、SSL 修复与权限管理

Composer 是 PHP 生态中核心的依赖管理工具,其运行依赖于底层操作系统环境、PHP CLI 配置、SSL 证书信任链及文件系统权限模型。在 Debian 11 这类以稳定性和最小化为设计原则的发行版中,默认不预装 curl、unzip,不启用 openssl 扩展,且 ca-certificates 包可能未更新,导致常见错误如 'cURL error 60' 或 'Command not found'。理解 PHP CLI 与 php-fpm 的配置隔离、/etc/php/*/cli/php.i

jackleechina2011212的博客 442

NPM依赖包版本号~和^的区别

~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0 ...

徐同保的专栏 3001

Ubuntu 20.04 安装 Composer 的底层原理与排错指南

Composer 是 PHP 生态的依赖解析与自动加载调度核心,其本质远超普通包管理器——它基于语义化版本(SemVer)计算依赖图、校验 PHP 扩展兼容性(如 mbstring、openssl)、执行 TLS 1.2+ 证书链验证,并生成 PSR-4/PSR-0 自动加载映射。在 Ubuntu 20.04 这类 LTS 系统中,因默认 PHP 7.4 最小化安装、ca-certificates 过期、系统级 openssl 扩展未启用等深层约束,极易触发 'cURL error 60' 或 'Your

angw337679452的博客 333

PHP生态基石:Composer、Symfony与PHPUnit协同原理

PHP作为广泛应用的Web开发语言,其工程化能力高度依赖于松耦合的组件协作体系。Composer并非简单包安装器,而是通过语义化版本约束与结构化元数据协议,构建起跨环境、可验证的依赖解析网络;Symfony以HTTP内核、事件分发、控制台等标准化组件,为Laravel等框架提供可复用的‘原子能力’;PHPUnit则超越基础断言,依托分支覆盖率、数据提供器与Mock/Stub语义分离,成为保障代码韧性的质量校准器。三者共同构成PHP现代应用的事实标准链——从依赖管理、运行时抽象到质量验证。本文深入拆解这一协同

weixin_30399155的博客 361

Ubuntu 22.04 安装 Composer 全链路指南:依赖、权限、镜像与排错

Composer 是 PHP 项目的核心依赖管理工具,其运行依赖于 PHP 扩展、系统工具和环境配置等底层支撑。理解其工作原理——如依赖解析、ZIP 解压、自动加载生成及 Packagist 源通信——是解决安装失败、'failed to unzip' 和 'SSL certificate problem' 等高频问题的前提。在 Ubuntu 22.04 中,PHP 8.1 默认缺失 php-zip、php-xml 等关键扩展,且 /tmp 权限或空间不足常被误判为网络问题;同时国内访问 Packagist

SAN_YUN的专栏 479

“composer ^ 这个符号的含义及用法详解“

在上述示例中,“^1.0.0” 表示以 1.0.0 版本为基础,允许任何与该版本兼容的版本,包括 1.x.x 的任何版本。当包的开发者发布新的次要版本时(例如 1.1.0),Composer 会自动更新到新的次要版本,因为它被认为是与原始版本 1.0.0 兼容的。文件中指定一个依赖的版本时,可以使用 “^” 符号来表示版本范围。除了 “^” 符号外,Composer 还支持其他版本范围的符号,如 “~” 和 “>=

network_web569的博客 2009

Composer安装后,这5个命令和配置才是你项目真正需要的(Laravel/ThinkPHP实战)

本文深入解析Composer在Laravel和ThinkPHP项目中的5个关键命令与配置技巧,包括依赖管理、更新策略、锁定文件解析、私有仓库配置及高级诊断命令。通过实战案例展示如何优化Composer使用,提升开发效率与项目稳定性,特别适合需要精细控制PHP依赖的开发者。

aikunjiao3421的博客 466

长安车机破解后能干啥?分享我的UNI-K车机安装第三方应用与优化体验实录

本文详细记录了长安UNI-K车机破解后的实用玩法与深度优化指南,包括安装第三方应用、导航体验升级、影音系统改造及系统美化等。通过工具箱和升级技巧,车主可以大幅提升用车体验,解锁更多隐藏功能。

weixin_33217202的博客 405

多核异构处理器核间通信:从共享内存到RPMsg协议的实战解析

在多核异构处理器架构中,核间通信是实现高效协同计算的核心技术。其基本原理是通过共享内存作为数据交换的物理媒介,配合硬件信号机制实现同步与通知。从技术价值看,它解决了不同架构核心间的数据共享与指令协同问题,是释放异构计算潜力的关键。在应用场景上,该技术广泛应用于智能物联网设备、汽车电子和工业控制等领域,用于连接高性能应用处理器与实时微控制器。本文以典型的ARM Cortex-A与Cortex-M组合为例,深入剖析了基于共享内存和RPMsg协议的通信机制,涵盖了从硬件基础到软件协议栈的完整实现链路,并提供了针对

weixin_26969269的博客 447

composer install和update的区别

不同点:composer.update更新composer.json中的依赖,并写入composer.lock中,composer install先找.lock文件,没有才去读.json文件。比如项目新来了一个同事,拉取项目后,让他执行composer install 确保新同事本地项目的依赖和大家一致。会在根目录下生成vendor文件夹,所以的依赖会生成在vendor下,同时也会生成一个composer.lock。安装好composer后,在项目根目录建立composer.json。

qq_21810059的博客 855

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6862

《PHP依赖治理体系:Composer依赖冲突、版本兼容与供应链安全的全流程解决方案》

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .container{ width: 960px; margin:100px auto; }

qq_37805832的博客 807

从零开始:用Python实现AlphaZero五子棋AI(附完整代码)

本文详细介绍了如何从零开始使用Python实现AlphaZero五子棋AI。通过工程化实践,逐步构建蒙特卡洛树搜索(MCTS)、轻量化残差网络(ResNet)以及自博弈训练循环,并提供完整可运行的代码。文章旨在帮助开发者绕过复杂理论,聚焦实战,最终打造一个能够自我学习与对弈的智能体,是深度强化学习在游戏AI领域的一次完整项目实战。

weixin_29081703的博客 416

42、Windows Server Update Services(WSUS)全面指南

本文全面介绍了Windows Server Update Services(WSUS)的安装、配置、管理与优化策略。内容涵盖WSUS基础认知、客户端更新问题解决、多服务器架构设计、计算机分组策略、更新审批与报告查看,并深入探讨了SSL加密配置、性能优化、与其他系统(如AD和SCCM)集成以及常见故障排查方法。通过本指南,IT管理员可高效部署和管理企业级软件更新,提升安全性和运维效率。

cicd6pipeline的博客 99

Composer不只是install:从入门到进阶,这10个命令让你玩转PHP依赖管理

本文深入探讨了Composer在PHP依赖管理中的10个进阶命令,从基础安装到高级配置,帮助开发者提升效率。涵盖依赖管理、版本控制、镜像配置等实用技巧,特别适合需要优化PHP项目工作流的开发者。

aikunjiao3421的博客 313

麒麟操作系统提示“默认密钥环已上锁”的解决办法

麒麟操作系统提示“默认密钥环已上锁”的解决办法

太极淘的博客 1万+

homebrew安装php环境,HomeBrew安装配置composer环境

一直都是通过直接安装composer的方法来安装,这次通过homebrew这个集成安装管理包来进行composer的安装和配置主要考虑的是homebrew在macos的环境下可以集中管理php、mysql、nginx、apache等环境,方便以后的开发和维护环境。本次安装和配置composer的环境是:macos 10.13.6版本。/usr/bin/ruby-e"$(curl-fsSLh...

weixin_29267307的博客 541

微信小程序|基于小程序+云开发制作一个租房小程序

经济发展的同时伴随着大批人群的流动,租房需求一直是持久不衰的话题,如何租好房,好租房,跟随此文一起制作一个租房小程序,让租房不再困难。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 4929

verilog实现步进电机脉冲分配器(三相六拍)基于Nexys4DDR开发板

使用Verilog HDL设计的一个能够自启动、具有正反转功能的三相六拍步进电机脉冲分配器。已经写好Nexy4DDR的管脚约束文件 可以通过Nexys4DDR开发板的PMOD接口连接步进电机进行调试。 使用verilog语言 在vivado2018.2下运行编译下载都正确,(也可在ISE,QuartusII下使用)下面是工程截图: ...

QQ_778132974的博客 2593
上一篇: vscode设置ssh进行远程编辑
下一篇: vmware 虚拟机nat连接,局域网访问
迷途大灰狼
博客等级 码龄10年 230粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值