首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony更新5.4至6.1

Symfony更新5.4至6.1
EN

Stack Overflow用户
提问于 2022-07-31 07:44:12
回答 1查看 378关注 0票数 -1

我更新symfony版本5.4到6.1,我有此错误,在论坛上找不到解决方案(我认为同时存在几个问题):

代码语言:javascript
运行
复制
Fatal error: Declaration of App\Repository\UserRepository::upgradePassword(Symfony\Component\Security\Core\User\UserInterface $user, string $newEncodedPassword): void must be compatible with Symfony\Component\Security\Core\User\PasswordUpgraderInterface::upgradePassword(Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void in /Users/pjf/sites/myapp/src/Repository/UserRepository.php on line 29

在我的应用中:

代码语言:javascript
运行
复制
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.4.30. in /Users/pfjsites/myapp/vendor/composer/platform_check.php on line 24

我的文件composer.json:

代码语言:javascript
运行
复制
{
"type": "project",
"license": "proprietary",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
    "php": ">=8.1",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "composer/package-versions-deprecated": "1.11.99.3",
    "doctrine/annotations": "^1.0",
    "doctrine/doctrine-bundle": "^2.4",
    "doctrine/doctrine-migrations-bundle": "^3.0",
    "doctrine/orm": "^2.9",
    "dompdf/dompdf": "^1.2",
    "easycorp/easyadmin-bundle": "^4.0",
    "knplabs/knp-paginator-bundle": "^5.8",
    "phpdocumentor/reflection-docblock": "^5.2",
    "sensio/framework-extra-bundle": "^6.2",
    "symfony/asset": "6.1.*",
    "symfony/console": "6.1.*",
    "symfony/dotenv": "6.1.*",
    "symfony/expression-language": "6.1.*",
    "symfony/flex": "^1.3.1",
    "symfony/form": "6.1.*",
    "symfony/framework-bundle": "6.1.*",
    "symfony/http-client": "6.1.*",
    "symfony/intl": "6.1.*",
    "symfony/mailer": "6.1.*",
    "symfony/mime": "6.1.*",
    "symfony/monolog-bundle": "^3.1",
    "symfony/notifier": "6.1.*",
    "symfony/process": "6.1.*",
    "symfony/property-access": "6.1.*",
    "symfony/property-info": "6.1.*",
    "symfony/proxy-manager-bridge": "6.1.*",
    "symfony/runtime": "6.1.*",
    "symfony/security-bundle": "6.1.*",
    "symfony/serializer": "6.1.*",
    "symfony/string": "6.1.*",
    "symfony/translation": "6.1.*",
    "symfony/twig-bundle": "6.1.*",
    "symfony/validator": "6.1.*",
    "symfony/web-link": "6.1.*",
    "symfony/yaml": "6.1.*",
    "twbs/bootstrap-icons": "^1.9",
    "twig/extra-bundle": "^2.12|^3.0",
    "twig/intl-extra": "^3.3",
    "twig/twig": "^2.12|^3.0"
},
"require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.4",
    "phpunit/phpunit": "^9.5",
    "symfony/browser-kit": "6.1.*",
    "symfony/css-selector": "6.1.*",
    "symfony/debug-bundle": "6.1.*",
    "symfony/maker-bundle": "^1.36",
    "symfony/phpunit-bridge": "^5.3",
    "symfony/stopwatch": "6.1.*",
    "symfony/web-profiler-bundle": "6.1.*"
},
"config": {
    "optimize-autoloader": true,
    "preferred-install": {
        "*": "dist"
    },
    "sort-packages": true,

    "platform-check": false

},
"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.1.*"
    }
},

"platform": {
 "php": "8.1.6"}}}

我添加了一些代码(Symfony 5.4.9 Composer detected issues in your platform:)

代码语言:javascript
运行
复制
"require": {
    "php": ">=8.1",

}

代码语言:javascript
运行
复制
"config": {
    "platform": {
        "php": "8.1.6"
    },
},

怎么解决?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-31 08:50:06

消息已经包含答案,某些方法的签名已经更改,需要在自定义代码中进行调整,以便与新的symfony版本“兼容”。

转到29号线的UserRepository.php

并将$user参数从

代码语言:javascript
运行
复制
(UserInterface $user, string $newEncodedPassword)

代码语言:javascript
运行
复制
(PasswordAuthenticatedUserInterface $user, string $newHashedPassword)

在文件的顶部,“使用”接口不会像上面这样用方法编写完整的路径:

代码语言:javascript
运行
复制
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;

另一条消息只是说你的应用程序至少需要php-8.1版本,但是你运行的是7.4.30,所以你需要在运行应用程序的系统上升级php。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73181466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档