Обновление Symfony с 3.3.2 до 3.4 / несовместимость Twig

Не знаю, упускаю ли я что-то очевидное. Итак, я пытаюсь обновить Symfony с 3.3.2 до 3.4. Я проверил проблемы с

php composer.phar update symfony/symfony --with-dependencies

Получил такой отзыв:

Problem 1
- Conclusion: don't install twig/twig v2.5.0
- Conclusion: don't install twig/twig v2.4.8
- Conclusion: don't install twig/twig v2.4.7
- Conclusion: don't install twig/twig v2.4.6
- Conclusion: don't install twig/twig v2.4.5
- Conclusion: don't install twig/twig v2.4.4
- Conclusion: don't install twig/twig v1.35.4
- Conclusion: don't install twig/twig v1.35.3
- Conclusion: don't install twig/twig v1.35.2
- Installation request for twig/twig (locked at v1.34.2, required as ^1.0||^2.0) -> satisfiable by twig/twig[v1.34.2].
- Conclusion: don't install twig/twig v1.35.1
- symfony/symfony v3.4.0 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.1 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.10 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.11 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.12 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.13 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.14 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.15 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.16 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.17 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.2 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.3 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.4 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.5 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.6 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.7 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.8 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.9 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- Conclusion: don't install twig/twig v1.35.0
- Installation request for symfony/symfony 3.4.* -> satisfiable by symfony/symfony[v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.2, v3.4.3, v3.4.4, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9]

Чего я не понимаю, так это противоречия между тем фактом, что мне придется установить новую версию twig, но в то же время мне не следует этого делать. Я проверил документацию Symfony, но ничего не нашел. В любом случае я безуспешно пытался обновиться с помощью различных версий twig. Я все еще могу следовать этому решению, но боюсь, что испортил свой код.

Как правильно обновить Symfony3.3 до Symfony4.X?

ИЗМЕНИТЬ 1

Я видел на другом форуме решение. Я попробовал, поэтому удалил composer.lock и каталог vendor. Теперь пакеты загружаются заново, но в процессе я получаю следующую ошибку:

[RuntimeException]                                                           
An error occurred when executing the "'cache:clear --no-warmup'" command:  
In ParameterBag.php line 102:
You have requested a non-existent parameter "mailer_port". Did you mean this: "mailer_host"?`

РЕДАКТИРОВАТЬ 2

Старый композитор

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "~2.1.2",
    "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": "3.3.2",
    "twig/twig": "^1.0||^2.0"
},
"require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.0",
    "sensio/generator-bundle": "^3.0",
    "symfony/phpunit-bridge": "^4.1"

Новый композитор

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "~2.1.2",
    "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": "~3.4",
    "twig/twig": "~1.35|~2.44"
},
"require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.0",
    "sensio/generator-bundle": "^3.0",
    "symfony/phpunit-bridge": "3.3.2"

Есть у кого-нибудь идеи, что делать?

symfony/symfony v3.4.0 requires twig/twig ^1.35|^2.4.4 -> у вас веточка 1.35 или 2.4.4 и выше? Похоже, вы все еще ориентируетесь на код Symfony 3 ... возможно, обновите файл composer.json, чтобы отразить новые изменения
treyBake 11.10.2018 14:32

У меня сейчас установлена ​​веточка 1.35.4. Если я все равно обновлюсь с обновлением php composer.phar, он даст мне ошибку моего EDIT1 в сообщении.

Shaker81 11.10.2018 14:54

но пробовали ли вы вручную обновить композитор json?

treyBake 11.10.2018 14:54

Если под изменением вручную вы имеете в виду изменение объекта require в composer.json, я делал это, чтобы соответствовать предыдущему запросу композитора, пока я не застрял в этом цикле. Я загрузил в пост своего старого и нового композитора.

Shaker81 11.10.2018 15:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
4
1 806
1

Ответы 1

Попробуйте записать обратно "twig/twig": "^1.0||^2.0", а затем заменить "sensio/framework-extra-bundle": "^3.0.2" на "sensio/framework-extra-bundle": "^5.0.0", это единственное различие, которое я вижу между вашим composer.json и composer.json нового проекта Symfony 3.4.16.

Затем я получаю следующую ошибку, касающуюся ветки. The requested package sensio/framework-extra-bundle (installed at v3.0.26, required as ^5.0.0) is satisfiable by sensio/framework-extra-bundle[v3.0.26] but these conflict with your requirements or minimum-stability. Возможно ли, что чего-то не хватает, потому что я скопировал всю папку веб-сайта на другой компьютер, на котором также работает LAMP, чтобы попробовать обновление, не испортив оригинал?

Shaker81 11.10.2018 18:01

Спасибо за вашу помощь! Я не нашел ответа. Вместо этого я установил новую версию Symfony 3.4 и скопировал в нее свой проект. Мне пришлось внести несколько изменений (только с веткой, которая была проблемой при обновлении), но теперь она работает. В любом случае мне все еще интересно узнать, в чем была ошибка, если у кого-то есть идея.

Shaker81 14.10.2018 22:08

Извините, что не ответил на ваш последний вопрос ... Я рад, что у вас все получилось!

Nicolas 15.10.2018 14:02

Другие вопросы по теме