【发布时间】:2018-06-16 10:30:44
【问题描述】:
解释:
我无法将 symfony3 更新到 symfony4,无论我如何修复它们都会引发各种不同的错误。
我尝试过的:
我正在关注the official documentation 的主要更新,我已确保我有 0 次弃用。
我更新了我的composer.json 如下:
{
"...": "...",
"require": {
"symfony/symfony": "^4.0",
},
"...": "..."
}
错误:
您的要求无法解决为一组可安装的 包。
问题 1 - 结论:删除 symfony/assetic-bundle v2.8.2 - 结论:不要安装 symfony/assetic-bundle v2.8.2 - 结论:不要安装 symfony/symfony v4.0.3 - 结论:不要安装 symfony/symfony v4.0.2 - symfony/assetic-bundle 的安装请求(锁定在 v2.8.2,要求为 ^2.8)-> 满足 symfony/assetic-bundle[v2.8.2].
现在,我继续卸载 symfony/assetic-bundle,但它给出了以下相同的错误:
- “symfony/swiftmailer-bundle”
- “sensio/framework-extra-bundle”
- “sensio/分发包”
- “incenteev/composer-parameter-handler”
然后当没有什么要删除时(此时非常令人沮丧),它只是说:
问题 1 - 结论:不要安装 symfony/symfony v4.0.3 - 结论:不要安装 symfony/symfony v4.0.2 - 结论:不要安装 symfony/symfony v4.0.1 - sensio/generator-bundle v3.1.7 需要 symfony/yaml [...]
- sensio/generator-bundle 的安装请求(锁定在 v3.1.7,要求为 ^3.0)-> 可满足 sensio/generator-bundle[v3.1.7]。
问题:
如何正确解决错误(如上所示)以及如何正确将 symfony 更新到 4.0?
composer.json sn-p:
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^3.0.2",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.3.10",
"symfony/symfony": "^4.0",
"twig/twig": "^1.0||^2.0"
},
"require-dev": {
"sensio/generator-bundle": "3.1.7",
"symfony/phpunit-bridge": "^3.0"
},
【问题讨论】:
-
如果您对 symfony 还没有太大的信心,最好先升级到 3.4,然后在 symfony 分析器的帮助下一一修复所有的弃用。 PS:确保使用的所有库/捆绑版本都已经兼容4.*
-
我曾多次尝试按照这些说明从 3.4 跳转到 4.0,但从未成功。我要做的是降低一个新的 4.0 flex 骨架,然后跟随:Upgrading Existing Applications to Flex。只需将 3.4 应用程序中的内容复制/粘贴/重命名到新结构即可。无论如何都需要这样做,因为在保持 S3 文件结构的同时升级到 S4 几乎没有意义。
-
如果确实想继续尝试您的作曲家更改,请注意 sensio 生成器包已(基本上)被替换为 4.0 中的制造商包。 symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html