I'm trying to make an entity User using the command line php bin/console make:entity
But it keeps giving me this error:
In DoctrineHelper.php line 187:
Cannot access protected property Doctrine\ORM\Mapping\Driver\AnnotationDriver::$classNames
make:entity [-a|--api-resource] [-b|--broadcast] [--regenerate] [--overwrite] [--] [<name>]
I have followed the official website instructions to download all the requirements https://symfony.com/doc/5.4/doctrine.html
composer.json
:
{
"type": "project",
"license": "proprietary",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
"php": ">=7.2.5",
"ext-ctype": "*",
"ext-iconv": "*",
"doctrine/annotations": "^1.0",
"doctrine/doctrine-bundle": "^2.6",
"doctrine/doctrine-migrations-bundle": "^3.2",
"doctrine/orm": "^2.12",
"phpdocumentor/reflection-docblock": "^5.3",
"phpstan/phpdoc-parser": "^1.4",
"sensio/framework-extra-bundle": "^6.1",
"symfony/apache-pack": "^1.0",
"symfony/asset": "5.4.*",
"symfony/console": "5.4.*",
"symfony/doctrine-messenger": "5.4.*",
"symfony/dotenv": "5.4.*",
"symfony/expression-language": "5.4.*",
"symfony/flex": "^1.17|^2",
"symfony/form": "5.4.*",
"symfony/framework-bundle": "5.4.*",
"symfony/http-client": "5.4.*",
"symfony/intl": "5.4.*",
"symfony/mailer": "5.4.*",
"symfony/mime": "5.4.*",
"symfony/monolog-bundle": "^3.0",
"symfony/notifier": "5.4.*",
"symfony/process": "5.4.*",
"symfony/property-access": "5.4.*",
"symfony/property-info": "5.4.*",
"symfony/proxy-manager-bridge": "5.4.*",
"symfony/runtime": "5.4.*",
"symfony/security-bundle": "5.4.*",
"symfony/serializer": "5.4.*",
"symfony/string": "5.4.*",
"symfony/translation": "5.4.*",
"symfony/twig-bundle": "5.4.*",
"symfony/validator": "5.4.*",
"symfony/web-link": "5.4.*",
"symfony/webapp-meta": "^1.0",
"symfony/webpack-encore-bundle": "^1.12",
"symfony/yaml": "5.4.*",
"twig/extra-bundle": "^2.12|^3.0",
"twig/twig": "^2.12|^3.0"
},
"config": {
"allow-plugins": {
"composer/package-versions-deprecated": true,
"symfony/flex": true,
"symfony/runtime": true
},
"optimize-autoloader": true,
"preferred-install": {
"*": "dist"
},
"sort-packages": 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": "5.4.*"
}
},
"require-dev": {
"symfony/debug-bundle": "5.4.*",
"symfony/maker-bundle": "^1.38",
"symfony/stopwatch": "5.4.*",
"symfony/web-profiler-bundle": "5.4.*"
}
}
CodePudding user response:
This issue was triggered by the newly released Doctrine ORM 2.12.0
Until a fix is pushed, either by Symfony or Doctrine (haven't had time yet to check which package is "at fault"), you can downgrade to Doctrine ORM 2.11.3.
In your composer.json
change the line:
"doctrine/orm": "^2.12",
to:
"doctrine/orm": "^2.11",
And modify your conflict
section so that 2.12 does not get installed:
"conflict": {
"symfony/symfony": "*",
"doctrine/orm": "2.12.0"
},
After this, run composer update doctrine/orm
to downgrade the package, and bin/console make:entity
should work again.
I see that the issue has been reported to symfony/maker-bundle some days ago. Monitoring this issue would be a good way to know when you can upgrade the Maker bundle and remove the doctrine/orm
conflict declaration from your configuration.