在之前学习和工作中,存在对于composer 用法的误解使用,刚开始的时候,基本没有遇到什么问题。
随着后续项目的规模扩大,composer update 过来的 不稳定的更新包,给项目带来了致命性的伤害!
故此整理一篇文章,以作反省。
先说下composer install
install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。
如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。 如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。
在来看下composer update
composer update 获取依赖的最新版本,并且升级 composer.lock 文件。
这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。
composer install命令(主要)用于生产环境,composer.lock文件记录项目当前版本信息,当执行install命令时,会检测lock文件的各扩展。
版本与最新版本差别,如果有则更新到最新版。而composer update命令也会执行上述所讲,但是如果在composer.json文件添加库到require字段时,就必须用composer update命令了。但这时会更新其他库的内容,
此时如果只是添加某个库而不更新其他库(例如生产环境),
就要使用composer require “包名:版本号” 命令。
写在后面:
项目部署常用命令:
composer install --no-dev --optimize-autoloader