[Config][FrameworkBundle] Hint to use PHP 8+ or to install Annotations to use attributes/annots

This commit is contained in:
Kévin Dunglas 2021-03-25 18:36:29 +01:00
parent 36cc161adc
commit af6f3c2c08
No known key found for this signature in database
GPG Key ID: 9D0C5D6EEB42C445
6 changed files with 5 additions and 10 deletions

View File

@ -1312,7 +1312,7 @@ class FrameworkExtension extends Extension
if (\array_key_exists('enable_annotations', $config) && $config['enable_annotations']) {
if (!$this->annotationsConfigEnabled && \PHP_VERSION_ID < 80000) {
throw new \LogicException('"enable_annotations" on the validator cannot be set as Doctrine Annotations support is disabled.');
throw new \LogicException('"enable_annotations" on the validator cannot be set as the PHP version is lower than 8 and Doctrine Annotations support is disabled. Consider upgrading PHP.');
}
$validatorBuilder->addMethodCall('enableAnnotationMapping', [true]);
@ -1576,7 +1576,7 @@ class FrameworkExtension extends Extension
$serializerLoaders = [];
if (isset($config['enable_annotations']) && $config['enable_annotations']) {
if (\PHP_VERSION_ID < 80000 && !$this->annotationsConfigEnabled) {
throw new \LogicException('"enable_annotations" on the serializer cannot be set as Annotations support is disabled.');
throw new \LogicException('"enable_annotations" on the serializer cannot be set as the PHP version is lower than 8 and Annotations support is disabled. Consider upgrading PHP.');
}
$annotationLoader = new Definition(

View File

@ -64,7 +64,7 @@ class LoaderLoadException extends \Exception
} elseif (null !== $type) {
// maybe there is no loader for this specific type
if ('annotation' === $type) {
$message .= ' Make sure annotations are installed and enabled.';
$message .= ' Make sure to use PHP 8+ or that annotations are installed and enabled.';
} else {
$message .= sprintf(' Make sure there is a loader supporting the "%s" type.', $type);
}

View File

@ -31,7 +31,7 @@ class LoaderLoadExceptionTest extends TestCase
public function testMessageCannotLoadResourceWithAnnotationType()
{
$exception = new LoaderLoadException('resource', null, 0, null, 'annotation');
$this->assertEquals('Cannot load resource "resource". Make sure annotations are installed and enabled.', $exception->getMessage());
$this->assertEquals('Cannot load resource "resource". Make sure to use PHP 8+ or that annotations are installed and enabled.', $exception->getMessage());
}
public function testMessageCannotImportResourceFromSource()

View File

@ -38,8 +38,7 @@
"symfony/http-foundation": "For using a Symfony Request object",
"symfony/config": "For using the all-in-one router or any loader",
"symfony/yaml": "For using the YAML loader",
"symfony/expression-language": "For using expression matching",
"doctrine/annotations": "For using the annotation loader"
"symfony/expression-language": "For using expression matching"
},
"autoload": {
"psr-4": { "Symfony\\Component\\Routing\\": "" },

View File

@ -55,8 +55,6 @@
"symfony/config": "For using the XML mapping loader.",
"symfony/property-access": "For using the ObjectNormalizer.",
"symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.",
"doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
"doctrine/cache": "For using the default cached annotation reader and metadata cache.",
"symfony/var-exporter": "For using the metadata compiler."
},
"autoload": {

View File

@ -56,8 +56,6 @@
},
"suggest": {
"psr/cache-implementation": "For using the mapping cache.",
"doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
"doctrine/cache": "For using the default cached annotation reader.",
"symfony/http-foundation": "",
"symfony/intl": "",
"symfony/translation": "For translating validation errors.",