要使用 Doctrine 实体属性,您需要 PHP 8、doctrine/orm 2.9、doctrine/doctrine-bundle 2.4 和 symfony/framework-bundle 5.2

To use Doctrine entity attributes you'll need PHP 8, doctrine/orm 2.9, doctrine/doctrine-bundle 2.4 and symfony/framework-bundle 5.2

我的 Symfony 项目版本 4.4.9 有问题,PHP 8。当我 运行 php bin/console make:entity 这些错误出现:

To use Doctrine entity attributes you'll need PHP 8, doctrine/orm 2.9, doctrine/doctrine-bundle 2.4 and symfony/framework-bundle 5.2.

composer.json

    "php": ">=7.1.3",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "doctrine/annotations": "^1.13",
    "doctrine/doctrine-bundle": "^2.5",
    "doctrine/doctrine-migrations-bundle": "^3.2",
    "doctrine/orm": "2.9.6",
    "symfony/console": "4.4.*",
    "symfony/dotenv": "4.4.*",
    "symfony/flex": "^1.3.1",
    "symfony/framework-bundle": "4.4.*",
    "symfony/proxy-manager-bridge": "4.4.*",
    "symfony/yaml": "4.4.*"
},

和我的 PHP 版本:8.1

似乎是一个问题 运行 Symfony 4.4 + Symfony Maker Bundle under PHP 8+.

我可以使用在 PHP 8.

从头开始​​创建的项目重现该问题
$ composer create-project symfony/skeleton maker-annotations ^4.4.0
$ cd maker-annotations
$ composer require doctrine symfony/maker-bundle
$ bin/console make:entity

这在 PHP8 下会一直出错。有趣的是,您可以在同一个实体上再次调用 make:entity,它似乎可以正常工作...但最终会由于其他原因出错。

我能找到的唯一解决方案是将 PHP 降级到 7.4。如果您使用的是 旧版本的 Symfony,无论如何使用 PHP 的旧版本可能更安全。

或者更好的是,只需将您的 Symfony 版本升级到 5.2。