Php 如何在更新前创建composer/bower供应商软件包的备份?

Php 如何在更新前创建composer/bower供应商软件包的备份?,php,composer-php,Php,Composer Php,我需要更新一个过时的symfony2.8项目,它使用composer和bower作为包管理器 问题是,网站可能不会关闭,但由于项目已过时,我担心composer或bower在更新过程中会失败,导致网站关闭 我知道我可以在干运行模式下运行composer,在实际更新之前我会这样做: composer update --dry-run composer install --dry-run 但我想绝对确保,无论何时出现问题,我都可以恢复供应商包。所以我想我可以做一个备份焦油: cd /home/pr

我需要更新一个过时的symfony2.8项目,它使用composer和bower作为包管理器

问题是,网站可能不会关闭,但由于项目已过时,我担心composer或bower在更新过程中会失败,导致网站关闭

我知道我可以在干运行模式下运行composer,在实际更新之前我会这样做:

composer update --dry-run
composer install --dry-run
但我想绝对确保,无论何时出现问题,我都可以恢复供应商包。所以我想我可以做一个备份焦油:

cd /home/project/public_html/
tar cvf /home/project/composer_bower`date +'%Y%m%d'`.tar composer.json composer.lock bower.json .bowerrc vendor/ web/assets/vendor/

这是我备份供应商软件包的方式吗?Composer似乎不具备恢复更新/安装的内置可能性。还有其他选择吗?

这不是作曲家的工作

由您决定版本控制
composer.*
文件(以及任何其他依赖项声明文件,如
symfony.lock
,如果您在symfony下工作

甚至为了更安全,可以从依赖项声明+检索到的依赖项(例如代码+
供应商
目录)创建完整人工制品的副本

在我们的一些项目中,需要这种敏感性,每个部署都是一个完全包含和版本化的映像。如果部署出现问题,我们总是可以回到旧映像上


在不太重要的项目上,仅将依赖项声明文件置于版本控制下可能就足够了。

*.lock
置于版本控制下?这应该允许还原到精确的依赖项。只要您不在本地修改包…如果需要还原,您应该已经缓存了包。