- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始从事一个用 Symfony 2.8 编写的大型项目。将整个项目升级到 SF 3 需要数百小时,现在还不可能。我想到了一个想法,将 symfony/symfony
包解压到它替换的单个包中(composer.json
中的键 replace
)。它将解锁锁定在 self.version
上的所有 45 个包,并允许我们在可能的情况下逐步升级任何包。
示例:我将 doctrine/orm
锁定在 2.5.*
并且无法升级到 2.6
(什么将消除一些错误,还允许我升级 PHP 7.2
--> 7.3
) 因为我有 symfony/console
被 锁定>symfony/symfony
2.8
和 doctrine/orm:2.6
需要 symfony/console:~3.0.0
。然而,即使在 ^3.2
版本,我的项目也允许使用 symfony/console
,所以你可以明白我的意思。
我想问一下,在尝试解压 symfony/symfony
时,应用程序是否存在任何危险?目前我还没有看到任何危险。 p>
附言那些想要回答“只需要一个更高版本的包”的人的信息。从 Composer 1.7.3 开始,这是不可能的,并且会触发版本冲突。
最佳答案
在这种情况下,最好一步一步地走,并仔细检查每一步的结果。当然,如果您的整个项目都被测试覆盖,那么进行此类更改会简单得多,但我不知道是否如此。
我可能会做这样的事情:
composer.json
复制到单独的目录composer info
获取包的确切版本symfony/symfony
提供的包列表,例如通过调查 its own composer.json
或查看 its page在 Packagist 上。composer.json
中的 symfony/symfony
替换为与您当前拥有的版本相同的单独包。composer install
并将实际安装的包的结果集与为您的项目安装的包进行比较。最简单的方法是比较两个目录中 composer info
的输出。您还可以使用类似 composer info | awk -F ' ' '{print $1 ""$2}' | sort
获取已排序的包及其版本列表,以便于比较。composer info
为实际项目和新的 composer.json
获得相同的结果。composer.json
复制回主项目。届时您将能够安装相同的供应商软件包,但能够分别控制它们。我希望您知道 composer why
命令,该命令允许您检查包依赖性,以便您更好地了解哪些包会受到某些特定包版本更改的影响。
祝此任务顺利,因为仔细升级可能需要相当长的时间。
关于symfony - 解压 symfony/symfony,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56505962/
我是一名优秀的程序员,十分优秀!