yaleksandr89
@yaleksandr89
PHP developer

Как исправить ошибку при выполнении api:upgrade-resource (api-platform/core:^2.7)?

Приветствую.

Хотелось бы попросить совета, так как я что-то теряюсь. Исходные данные:
  • symfony/* 6.4
  • api-platform/core 2.7

composer.json проекта

{
    "type": "project",
    "license": "proprietary",
    "minimum-stability": "stable",
    "prefer-stable": true,
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/theofidry/AliceBundle"
        }
    ],
    "require": {
        "php": ">=8.0",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "ext-json": "*",
        "aego/oauth2-yandex": "^0.2.2",
        "api-platform/core": "^2.0",
        "composer/package-versions-deprecated": "^1.0",
        "doctrine/annotations": "^2.0",
        "doctrine/doctrine-bundle": "^2.0",
        "doctrine/doctrine-migrations-bundle": "^3.0",
        "doctrine/orm": "^2.0",
        "imagine/imagine": "^1.0",
        "knplabs/knp-paginator-bundle": "^5.0",
        "knpuniversity/oauth2-client-bundle": "^2.0",
        "league/oauth2-github": "^3.0",
        "league/oauth2-google": "^4.0",
        "lexik/form-filter-bundle": "^8.0",
        "nelmio/cors-bundle": "^2.0",
        "php-translation/symfony-bundle": "^0.14.3",
        "phpdocumentor/reflection-docblock": "^5.0",
        "sensio/framework-extra-bundle": "^6.0",
        "stof/doctrine-extensions-bundle": "^1.0",
        "symfony/asset": "6.4.*",
        "symfony/console": "6.4.*",
        "symfony/doctrine-messenger": "6.4.*",
        "symfony/dotenv": "6.4.*",
        "symfony/error-handler": "6.4.*",
        "symfony/expression-language": "6.4.*",
        "symfony/flex": "^1.0",
        "symfony/form": "6.4.*",
        "symfony/framework-bundle": "6.4.*",
        "symfony/http-client": "6.4.*",
        "symfony/intl": "6.4.*",
        "symfony/mailer": "6.4.*",
        "symfony/messenger": "6.4.*",
        "symfony/mime": "6.4.*",
        "symfony/monolog-bundle": "^3",
        "symfony/notifier": "6.4.*",
        "symfony/process": "6.4.*",
        "symfony/property-access": "6.4.*",
        "symfony/property-info": "6.4.*",
        "symfony/proxy-manager-bridge": "6.4.*",
        "symfony/runtime": "6.4.*",
        "symfony/security-bundle": "6.4.*",
        "symfony/serializer": "6.4.*",
        "symfony/string": "6.4.*",
        "symfony/translation": "6.4.*",
        "symfony/twig-bundle": "6.4.*",
        "symfony/uid": "6.4.*",
        "symfony/validator": "6.4.*",
        "symfony/web-link": "6.4.*",
        "symfony/webpack-encore-bundle": "^1",
        "symfony/yaml": "6.4.*",
        "symfonycasts/reset-password-bundle": "^1.0",
        "symfonycasts/verify-email-bundle": "^1.0",
        "twig/cssinliner-extra": "^3.0",
        "twig/extra-bundle": "^2.0|^3.0",
        "twig/inky-extra": "^3.0",
        "twig/intl-extra": "^3.0",
        "twig/twig": "^2.0|^3.0"
    },
    "require-dev": {
        "dama/doctrine-test-bundle": "^8.0",
        "dbrekelmans/bdi": "^1.0",
        "friendsofphp/php-cs-fixer": "^3.0",
        "hautelook/alice-bundle": "*",
        "phpstan/phpstan": "^1.0",
        "phpunit/phpunit": "^11.0",
        "symfony/browser-kit": "6.4.*",
        "symfony/css-selector": "6.4.*",
        "symfony/debug-bundle": "6.4.*",
        "symfony/maker-bundle": "^1.0",
        "symfony/panther": "^2.0",
        "symfony/phpunit-bridge": "6.4.*",
        "symfony/stopwatch": "6.4.*",
        "symfony/web-profiler-bundle": "6.4.*"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true,
        "allow-plugins": {
            "composer/package-versions-deprecated": true,
            "symfony/flex": true,
            "symfony/runtime": true
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php72": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "6.4.*"
        }
    }
}


Пытаюсь обновить api-platform/core до 3 версии. Согласно гайдлайну с официального сайта Upgrade Guide. А именно
  • Обновил api-platform/core:^2.7
  • В конфиг config/packages/api_platform.yaml добавил metadata_backward_compatibility_layer: false

Пытаюсь выполнить php bin/console api:upgrade-resource и наблюдаю ошибку
66a160e4a8026985012751.png

Если посмотреть vendor/api-platform/core/src/Core/Bridge/Symfony/Bundle/Command/UpgradeApiResourceCommand.php
66a1614910e9e452917321.png

Ничего конкретного по данной проблеме найти не смог. Единственное, что понял, что метод getTokens из класса PhpParser\Lexer был удален в 4 версии. Но как такое может быть, если на официальном сайте об этом нет никаких упоминаний и при гуглежки схожих проблем не нашел(((

У кого-нибудь был опыт обновления версии с 2 на 3 или может сталкивался с подобной проблемой?
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы