Объяснение:
Я не могу обновить symfony3 до symfony4, это вызывает множество различных ошибок, независимо от того, что я пытаюсь сделать, чтобы их исправить.
Что я пробовал:
Я слежу за официальной документацией, касающейся основных обновлений, и удостоверился, что у меня есть 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»
- «sensio / framework-extra-bundle»
- «sensio / distribution-bundle»
- «Incenteev / композитор-обработчик параметров»
Затем, когда уже нечего удалять (на данном этапе это довольно неприятно), он просто говорит:
Проблема 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:
"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. * — person kemicofa ghost schedule 07.01.2018
Я несколько раз пытался перейти с 3.4 на 4.0, следуя этим инструкциям, но безуспешно. Что я делаю, так это создаю новый гибкий каркас 4.0, а затем следую: Обновление существующих приложений до Flex. Просто скопируйте / вставьте / переименуйте материал из своего приложения 3.4 в новую структуру. В любом случае это нужно будет сделать, поскольку нет смысла переходить на S4 с сохранением файловой структуры S3. — person kemicofa ghost schedule 07.01.2018
И если вы хотите продолжить попытки изменения вашего композитора, имейте в виду, что пакет генератора sensio был заменен (в основном) на пакет производителя в 4.0. symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html — person kemicofa ghost schedule 07.01.2018
На этом этапе я создал скелет Symfony4 и скопировал вставленные файлы из моего предыдущего проекта. Это утомительная задача, поскольку кое-что действительно меняется.
Вот список основных шагов, которые могут помочь вам в обновлении:
Следуйте документации Symfony, чтобы избавиться от любых устаревших рекомендаций, которые могут присутствовать в вашем коде.
Создайте скелет Symfony4
src/Controllers
,src/Services
и т. Д.namespaces
, по умолчанию они должны бытьApp\Controller
,App\Services
и т. Д..env
файл в корневой каталог.Не стесняйтесь редактировать этот пост, добавляя более ценную информацию.