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

Объяснение:

Я не могу обновить 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

См. также:  Критерии Symfony LIKE в Findby()

Я несколько раз пытался перейти с 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

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. kemicofa ghost

    На этом этапе я создал скелет Symfony4 и скопировал вставленные файлы из моего предыдущего проекта. Это утомительная задача, поскольку кое-что действительно меняется.

    Вот список основных шагов, которые могут помочь вам в обновлении:

    1. Следуйте документации Symfony, чтобы избавиться от любых устаревших рекомендаций, которые могут присутствовать в вашем коде.

    2. Создайте скелет Symfony4

    3. Скопируйте и вставьте свои конкретные файлы в их соответствующее место.
    4. «Пакеты» в каком-то смысле не существуют, поэтому ваши каталоги должны быть примерно такими: src/Controllers, src/Services и т. Д.
    5. Обновите свой namespaces, по умолчанию они должны быть App\Controller, App\Services и т. Д.
    6. Информация о подключении к базе данных помещается в ваш .env файл в корневой каталог.

    Не стесняйтесь редактировать этот пост, добавляя более ценную информацию.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: