PHP Composer 的正确使用姿势

2021年PHP-Laravel面试题问卷题 答案记录 这里并不是,只用在具体调用类时才会加载类,lazyloading的意思。可以参考。 阅读详情

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。详细说明文档见Composer 中文文档,本文将列出的是工作中遇到的问题及解决方案。

阿里云2018双11云服务只需99.5元
1核2G内存,¥99.5/年
2核4G内存,¥545.00/1年
2核4G内存,¥927.00/2年
2核4G内存,¥1227.00/3年
2核8G内存,¥2070.00/3年
直达入口:http://t.cn/EZ14u8r


1. 开发过程中,特别是团队协作中,我们经常会遇到的问题是 composer.lock 文件会经常被修改,而且每个人的都会不一样?!

解决这个问题,我们需要的是理解 composer 几个命令之间的区别:

  • composer install

    install 命令是读取 composer.json 内容,处理了依赖关系后,将依赖包安装到 vendor 目录下。需要注意的是,如果说之前已经处理过相应的 composer.json 并已经生成了相应的 composer.lock 文件,那么 composer 会优先选择读取 composer.lock 里的内容来处理,如果未找到相应内容才会从 composer.json 中读取。很明显,这条命令是不会轻易修改 composer.lock文件的。

  • comoser update

    如其名,update 的工作是升级依赖包,它会从 composer.json 入手,对于配置的版本类似 x.x.* 的文件,它会去查找是否有更高的版本,如果有,它会执行更新,并且修改 composer.lock 文件。很明显,这条命令是会经常修改 composer.lock文件的。

如果说,在我们的项目开发过程,如是只想更新某一个依赖包时,就会比较麻烦。当然,你可以每个包都指定具体的版本,但是这对于项目管理也是比较头疼的。

  • composer require

    解决上述问题,这里需要介绍新的命令 composer require ,该命令是可指定单独某一个依赖包进行更新。这也就是说我们可以较小粒度的修改 composer.lock 文件了。

回到问题上,我们为了保持开发人员之间或者说开发人员与线上环境之间的依赖包版本的一致性,我们需要保证的是 composer.lock 文件尽量不被修改,且大部分人员只使用 install 命令,包括线上服务器部署时严格使用 install 命令。如果有需要更新的包,应该由特定人员通过使用 require 命令升级后提交 composer.lock 文件。

综上所述,composer 在项目管理中的正确使用姿势是,特定人员生成(install/update)或者更新(update/require) composer.lock 文件,其他人员只使用(install) composer.lock文件。


2. 在公司各个项目组之间,一定会存在很多通用的功能,那么如何优雅的使用其它项目组给我提供的组件呢?

首先我们能想到的就是我们常用的版本控制管理(vcs)的使用,ok,这样确实是能解决问题的,但是,对于权限控制严格的公司,这,我想应该能算得上是一种灾难了吧。

这里我想到的方法是,能不能用 composer 来管理呢?

答案肯定是可以的,别人都能发布包,我们肯定也可以,但是,如果说特别公用甚至可以公开的包,绝对没问题。可是,要是有公司私密信息的呢???

composer 为我们提供了打包方法 satis 和 proxy 两种,我使用 satis 解决了,请移步至SDK 编写规范及使用方法说明

Ubuntu下正确安装配置Composer的完整指南 Composer是PHP生态的核心包管理工具,其本质是一个依赖PHP运行时环境的PHAR脚本。理解其工作原理需明确:它并非独立二进制程序,而是深度绑定PHP CLI扩展、内存配置与系统库(如openssl、zlib)的动态执行体。技术价值体现在标准化依赖管理、版本约束解析与自动加载机制,广泛应用于Laravel、Symfony等现代PHP框架的项目初始化、依赖安装与生产部署。在Ubuntu系统中,因默认PHP精简安装导致mbstring、xml、zip等关键扩展缺失,极易引发Class not found、 阅读详情

相关推荐

解锁Windows下Composer切换PHP版本的奥秘

本文围绕 Windows 系统下 Composer 切换 PHP 版本展开,先阐述 Composer 与 PHP 版本关系的重要性,强调不同 PHP 版本特性及第三方库要求导致切换版本的必要性。接着说明查看当前 PHP 和 Composer 版本的方法,介绍安装多 PHP 版本的工具与方式,以及环境变量的作用。随后详细讲解切换 PHP 版本的步骤,包括修改系统环境变量、验证切换结果及配置 Composer 使用新 PHP 版本。还列举了可能遇到的问题及解决方案,最后总结关键步骤并建议定期更新相关版本。

邓邓子的博客 1195

php的安装composer安装,使用,部署laravel项目,启动方法,创建模拟主机

php的安装配置 1.使用phpstudy集成环境 选择php7.3.4版本 2.必须开启的扩展: phpstudy集成环境中,设置—配置文件中可以打开httpd.conf和php.ini文件 在php.ini文件中开启的扩展: extension=php_openssl.dll extension=php_pdo_mysql.dll extension=php_mbstring.dll ...

qq_45844648的博客 4166

全面掌握PHP Composer安装与配置

Composer已经成为PHP开发者不可或缺的工具,它是一个用于PHP项目的依赖管理工具。它能够帮助你声明项目所依赖的库,并且能自动下载这些库到你的项目中来。为什么使用Composer?Composer提供了一种更加现代化的管理方式,让PHP项目能够容易地引入和更新依赖包。它还支持依赖版本管理,允许开发者为每个包指定确切的版本号或者版本范围。基本功能简述- 自动加载管理:通过文件定义项目的依赖关系,Composer能够自动生成文件,使得依赖自动被加载。

weixin_30591519的博客 1076

【MacOS12安装PHP8.0,1/2】MacOS12安装PHP7.4、PHP8.0、composer、Nginx

MacOS12 Monterey已经不自带PHP了,所以手动安装PHP。这里我们用brew来安装所有用的到扩展,PHP版本荐PHP8.0 。1. 安装brew(国内源): 顺升级brew,这里主要是确保国内brew源和全球同步: --------------------------------------------2-1:安装PHP8.0: (也可安装最新版PHP:brew install php)2-2:链路PHP8.0 查看php版本 3. 全局安装composer: 4. 安装n

User XXX Blog 9742

ArcGIS Pro新手避坑:从OpenStreetMap导入路网到创建拓扑关系全流程

本文详细解析了ArcGIS Pro中从OpenStreetMap导入路网数据到创建拓扑关系的全流程,涵盖OSM数据特性、几何完整性检查、属性强化及拓扑关系构建等关键步骤。特别针对路网数据预处理、网络数据集配置和常见问题提供了实用解决方案,帮助GIS新手高效完成网络分析任务。

weixin_33670786的博客 514

基于51单片机的多功能计算器全套设计

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号

runweipa的博客 1742

php开发环境配置、安装composer、部署laravel项目、启动方式

PHP开发环境配置 1.phpstudy 选择php7.3.4nts 2.开启扩展名 php.ini配置文件需要开启的扩展: extension=php_openssl.dll extension=php_pdo_mysql.dll extension=php_mbstring.dll extension=php_fileinfo.dll(验证码代码依赖需要该扩展) extension=php...

qq_45844654的博客 732

CTFHUB------XSS反射型(WP)

文章目录前言XSS测试平台 前言 一开始我直接在上面写js脚本发现出错,最后发现只能通过下面的输入框来执行XSS测试,于是我们只能用XSS测试平台解决问题 XSS测试平台 注册一个XSS测试平台 这里随便填写 勾选默认模块就够了,点击下一步 这时会出现一个找个将代码复制 拼接到网站后缀name后面,点击send 这时平台会收到一个记录点开即可 得到flag ...

Y4tacker的博客 1万+

使用Composer的正确姿势

一、拉取组件是不是很慢? 换源(中国全量镜像) 修改 composer 的全局配置文件 打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令: composer config -g repo.packagist composer https://packagist.phpcomposer.com 镜像原理 一般情况下,安装包的数据(主要是 zip ...

QinDaBao_的博客 1197

【项目解析】2KW 230V 数字逆变器控制系统(二)

【项目解析】 2KW 230V 数字逆变器控制系统(一) 项目的 交流输出电压 并不是单纯一个电压环就能控制好的,而是典型的 双环控制架构:最终占空比控制量会经过计算: 然后写入 单片机 TMM 定时器的比较寄存器 (TMGRA0/TMGRD0/TMGRC1), → 定时器输出互补 PWM, → 驱动 IGBT 全桥, → 经过 LC 滤波形成 230 VAC / 50Hz 的正弦电压。总结交流电压是双环控制的结果:目标/作用:把输出 RMS 电压稳到目标(例如 230 VAC);在母线波动与负载变化下

Naiva的博客 1296

YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新110+)

本专栏提供详细的 YOLO11 教程,包括基础知识、源码解析、入门实践、算法改进和项目实战,适合发表YOLO11 学习者订阅。内容包含 100+多篇独家改进机制,适合发表论文,评分高达 96 分。订阅者将获得一键运行的改进文件及答疑交流群支持。 使用服务器的同学还可以私聊获取搭建好的运行环境。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1万+

windows更换composer PHP版本正确姿势

d:/xampp/php/php.exe d:/xampp/php/composer.phar -v

qq_35913969的博客 5910

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)

UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........

黑猫奥利奥的博客 4076

Ubuntu 18.04 安装 Composer 的正确姿势:兼容 PHP 7.2 的本地化部署方案

Composer 是 PHP 项目依赖管理的核心工具,其运行依赖于操作系统环境、PHP 运行时配置与版本兼容性三大基础。在 Ubuntu 18.04 这类 LTS 系统中,PHP 7.2 是默认且受支持的主版本,但官方未预置 Composer,而网络上泛滥的‘一键安装’脚本常忽略 `phar.readonly` 关闭、`allow_url_fopen` 启用、扩展缺失(如 mbstring/xml/zip)等关键前提,导致 `Could not open input file` 或 `Permission

weixin_30785593的博客 398

threejs中使用Reflector实现出倒影效果,并实现背景透明的效果(Reflector镜面背景透明, 倒影弱化)

在项目中遇到要实现倒影效果,threejs给我们提供了Reflector,可以轻松完成镜面效果,实现倒影。但背景不透明;并且反射出的倒影太亮了;网上没搜到解决方案, 自己修改了下源码实现了想要的效果,做个记录...

weixin_40856652的博客 5721

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1245

【PHP开发】Composer从入门到精通

从 Composer 的基本概念,到安装、使用、镜像配置,再到自动加载机制、自定义脚本等高级功能,以及最后的实战案例,我们逐步揭开了 Composer 在 PHP 项目开发中的神秘面纱。掌握 Composer 的这些知识和技能,将为我们的 PHP 开发工作带来极大的便利,无论是提高开发效率,还是优化项目结构,Composer 都能发挥关键作用 。

大雨淅淅的博客 2146

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【PHP】php Composer 安装使用

依赖管理 Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。 这种想法并不新鲜,Composer 受到了 node'snpm和 ruby'sbundler的强烈启发。而当时 PHP 下并没有类似的工具。 Composer 将这样为你解决问题: a) 你有一个项目依赖于若干个库。 b) 其中一些库.....

红尘道,红尘练心 1954

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

多个PHP版本使用composer

今天想在本地(wnmp环境)用composer安装laravel5.8,提示我php版本不符合安装标准,想起来我之前是把composer安装在php5.4.5版本的,在网上找了一下composer共存方法,总结大致步骤如下: 1.下载composer.phar 官网下载地址:https://getcomposer.org/download/,下载后放在任意位置,例如我放在D:\ext 2.检...

null 809

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【PHP】如何正确的使用composer

author:咔咔 wechat:fangkangfk 下载好composer,记住一点就是选择php版本,安装也没有其他的注意点 使用: 在终端cd到你的项目下,创建一个composer。json的文件,然后将你需要的库放进去,直接composer update即可 或者直接composer requier 包名称即可 跟新完之后就会有你需要的包了 ...

咔咔博客 2430

Php composer 基础教程

Composer 是 PHP 中的依赖管理工具。它允许声明项目所依赖的库,并且它将为您管理(安装/更新)它们。composer.json文件是composer使用json格式描述项目依赖的配置文件,其中包含一些项目元数据及其依赖配置等。composer.lock文件是composer安装完依赖后,生成的版本锁定文件,以确保在项目中工作的每个人的包版本一致。对于指定自动加载信息的库,Composer 会生成一个vendor/autoload.php 文件,然后引入依赖包时,只需要使用,不用require。

tangPHP的博客 2018

composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡

composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡

一颗优雅草科技-央千澈的优快云博客~只想无穷无尽的学习~作息早8-晚8 1078

PHP composer作用,PHP Composer详解

PHP composerphp composer的作用php composer相当于PHP 包管理器,可以很方便的解决php包之间的依赖关系,与python的pip类似。php composer 一个重要功能是实现类的自动加载。composer是如何实现类的自动加载1. 实现自动加载机制需要在php文件中添加 require "vender/autoload.php"2. autoload.php...

weixin_42298802的博客 5685

PHP 安装PHPStorm完成后 配置php命令 及 安装Composer

一、配置php命令 cmd php -v 报错'php' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 浪费时间原因:没理解应该php版本,环境变量应该配置php 而不是 phpstorm 解决:使用的php时xampp,环境变量配置F:\Xampp\php 二、安装Composer Composer安装后的目录为:C:......\AppData\Roaming...

JYliangliang的博客 1万+

在多版本php环境,指定composer使用的php版本

在不同的项目中,可能会使用不同的php版本,在使用 composer 安装依赖时,如何指定不同的php版本呢? 比如平时开发时,使用的是 php 7.0版本,但是在按照 Laravel最新版本(5.6) 时就跑不同了。因为在Laravel 5.6中, 最低要求版本是 PHP 7.1.3. 查看默认PHP版本:本机中默认PHP版本是7.0.30,命令地址是“/usr/local/bin/php”。 ...

weixin_33895516的博客 6017

docker php composer 使用_在多版本php环境,指定composer使用的php版本

在不同的项目中,可能会使用不同的php版本。在使用 composer 安装依赖时,如何指定不同的php版本呢?composer install比如平时工作开发时,使用的是 php 7.0版本,但是在安装 Laravel新版本(7.x) 时就跑不同了。因为在Laravel 7.x 中, 最低要求版本是 PHP >= 7.2.5。查看默认PHP版本:本机中默认PHP版本是7.0.30,命令地址是...

weixin_39658726的博客 874
上一篇: 关于vs开发windows程序过程中内存检查二三事
下一篇: 代码改变世界~云上优惠方案
ChaffZ
博客等级 码龄11年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值