Skip to content

Commit 44b8b76

Browse files
committed
[FrameworkBundle] Remove doctrine/annotations integration
1 parent adcadd1 commit 44b8b76

21 files changed

+26
-641
lines changed

UPGRADE-7.0.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ FrameworkBundle
121121
$this->render(..., ['form' => $form]);
122122
```
123123

124+
* Remove the integration of Doctrine annotations
125+
124126
HttpFoundation
125127
--------------
126128

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ CHANGELOG
1111
`Symfony\Component\Serializer\Normalizer\PropertyNormalizer` autowiring aliases, type-hint against
1212
`Symfony\Component\Serializer\Normalizer\NormalizerInterface` or implement `NormalizerAwareInterface` instead
1313
* Remove the `Http\Client\HttpClient` service, use `Psr\Http\Client\ClientInterface` instead
14+
* Remove the integration of Doctrine annotations
1415

1516
6.4
1617
---

src/Symfony/Bundle/FrameworkBundle/CacheWarmer/AnnotationsCacheWarmer.php

Lines changed: 0 additions & 114 deletions
This file was deleted.

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,16 @@ class UnusedTagsPass implements CompilerPassInterface
2323
{
2424
private const KNOWN_TAGS = [
2525
'annotations.cached_reader',
26-
'assets.package',
2726
'asset_mapper.compiler',
2827
'asset_mapper.importmap.resolver',
28+
'assets.package',
2929
'auto_alias',
3030
'cache.pool',
3131
'cache.pool.clearer',
3232
'cache.taggable',
3333
'chatter.transport_factory',
3434
'config_cache.resource_checker',
3535
'console.command',
36-
'container.do_not_inline',
3736
'container.env_var_loader',
3837
'container.env_var_processor',
3938
'container.excluded',

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\DependencyInjection;
1313

14-
use Doctrine\Common\Annotations\Annotation;
1514
use Doctrine\DBAL\Connection;
1615
use Psr\Log\LogLevel;
1716
use Symfony\Bundle\FullStack;
@@ -155,7 +154,7 @@ public function getConfigTreeBuilder(): TreeBuilder
155154
$this->addAssetMapperSection($rootNode, $enableIfStandalone);
156155
$this->addTranslatorSection($rootNode, $enableIfStandalone);
157156
$this->addValidationSection($rootNode, $enableIfStandalone);
158-
$this->addAnnotationsSection($rootNode, $willBeAvailable);
157+
$this->addAnnotationsSection($rootNode);
159158
$this->addSerializerSection($rootNode, $enableIfStandalone);
160159
$this->addPropertyAccessSection($rootNode, $willBeAvailable);
161160
$this->addPropertyInfoSection($rootNode, $enableIfStandalone);
@@ -1057,21 +1056,15 @@ private function addValidationSection(ArrayNodeDefinition $rootNode, callable $e
10571056
;
10581057
}
10591058

1060-
private function addAnnotationsSection(ArrayNodeDefinition $rootNode, callable $willBeAvailable): void
1059+
private function addAnnotationsSection(ArrayNodeDefinition $rootNode): void
10611060
{
10621061
$rootNode
10631062
->children()
10641063
->arrayNode('annotations')
1065-
->info('annotation configuration')
1066-
->{$willBeAvailable('doctrine/annotations', Annotation::class) ? 'canBeDisabled' : 'canBeEnabled'}()
1067-
->children()
1068-
->enumNode('cache')
1069-
->values(['none', 'php_array', 'file'])
1070-
->defaultValue('php_array')
1071-
->end()
1072-
->scalarNode('file_cache_dir')->defaultValue('%kernel.cache_dir%/annotations')->end()
1073-
->booleanNode('debug')->defaultValue($this->debug)->end()
1074-
->end()
1064+
->canBeEnabled()
1065+
->validate()
1066+
->ifTrue(static fn (array $v) => $v['enabled'])
1067+
->thenInvalid('Enabling the doctrine/annotations integration is not supported anymore.')
10751068
->end()
10761069
->end()
10771070
;

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Symfony\Bundle\FrameworkBundle\DependencyInjection;
1313

1414
use Composer\InstalledVersions;
15-
use Doctrine\Common\Annotations\Reader;
1615
use Http\Client\HttpAsyncClient;
1716
use Http\Client\HttpClient;
1817
use phpDocumentor\Reflection\DocBlockFactoryInterface;
@@ -255,7 +254,6 @@ public function load(array $configs, ContainerBuilder $container): void
255254
$config = $this->processConfiguration($configuration, $configs);
256255

257256
// warmup config enabled
258-
$this->readConfigEnabled('annotations', $container, $config['annotations']);
259257
$this->readConfigEnabled('translator', $container, $config['translator']);
260258
$this->readConfigEnabled('property_access', $container, $config['property_access']);
261259
$this->readConfigEnabled('profiler', $container, $config['profiler']);
@@ -363,7 +361,6 @@ public function load(array $configs, ContainerBuilder $container): void
363361
$this->registerWorkflowConfiguration($config['workflows'], $container, $loader);
364362
$this->registerDebugConfiguration($config['php_errors'], $container, $loader);
365363
$this->registerRouterConfiguration($config['router'], $container, $loader, $config['enabled_locales']);
366-
$this->registerAnnotationsConfiguration($config['annotations'], $container, $loader);
367364
$this->registerPropertyAccessConfiguration($config['property_access'], $container, $loader);
368365
$this->registerSecretsConfiguration($config['secrets'], $container, $loader);
369366

@@ -1600,10 +1597,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
16001597
$definition->replaceArgument(0, $config['email_validation_mode']);
16011598

16021599
if (\array_key_exists('enable_annotations', $config) && $config['enable_annotations']) {
1603-
$validatorBuilder->addMethodCall('enableAnnotationMapping', [true]);
1604-
if ($this->isInitializedConfigEnabled('annotations')) {
1605-
$validatorBuilder->addMethodCall('setDoctrineAnnotationReader', [new Reference('annotation_reader')]);
1606-
}
1600+
$validatorBuilder->addMethodCall('enableAnnotationMapping');
16071601
}
16081602

16091603
if (\array_key_exists('static_method', $config) && $config['static_method']) {
@@ -1698,58 +1692,6 @@ private function registerMappingFilesFromConfig(ContainerBuilder $container, arr
16981692
}
16991693
}
17001694

1701-
private function registerAnnotationsConfiguration(array $config, ContainerBuilder $container, LoaderInterface $loader): void
1702-
{
1703-
if (!$this->isInitializedConfigEnabled('annotations')) {
1704-
return;
1705-
}
1706-
1707-
if (!class_exists(\Doctrine\Common\Annotations\Annotation::class)) {
1708-
throw new LogicException('Annotations cannot be enabled as the Doctrine Annotation library is not installed. Try running "composer require doctrine/annotations".');
1709-
}
1710-
1711-
trigger_deprecation('symfony/framework-bundle', '6.4', 'Enabling the integration of Doctrine annotations is deprecated. Set the "framework.annotations.enabled" config option to false.');
1712-
1713-
$loader->load('annotations.php');
1714-
1715-
if ('none' === $config['cache']) {
1716-
$container->removeDefinition('annotations.cached_reader');
1717-
1718-
return;
1719-
}
1720-
1721-
if ('php_array' === $config['cache']) {
1722-
$cacheService = 'annotations.cache_adapter';
1723-
1724-
// Enable warmer only if PHP array is used for cache
1725-
$definition = $container->findDefinition('annotations.cache_warmer');
1726-
$definition->addTag('kernel.cache_warmer');
1727-
} else {
1728-
$cacheService = 'annotations.filesystem_cache_adapter';
1729-
$cacheDir = $container->getParameterBag()->resolveValue($config['file_cache_dir']);
1730-
1731-
if (!is_dir($cacheDir) && false === @mkdir($cacheDir, 0777, true) && !is_dir($cacheDir)) {
1732-
throw new \RuntimeException(sprintf('Could not create cache directory "%s".', $cacheDir));
1733-
}
1734-
1735-
$container
1736-
->getDefinition('annotations.filesystem_cache_adapter')
1737-
->replaceArgument(2, $cacheDir)
1738-
;
1739-
}
1740-
1741-
$container
1742-
->getDefinition('annotations.cached_reader')
1743-
->replaceArgument(2, $config['debug'])
1744-
// reference the cache provider without using it until AddAnnotationsCachedReaderPass runs
1745-
->addArgument(new ServiceClosureArgument(new Reference($cacheService)))
1746-
;
1747-
1748-
$container->setAlias('annotation_reader', 'annotations.cached_reader');
1749-
$container->setAlias(Reader::class, new Alias('annotations.cached_reader', false));
1750-
$container->removeDefinition('annotations.psr_cached_reader');
1751-
}
1752-
17531695
private function registerPropertyAccessConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader): void
17541696
{
17551697
if (!$this->readConfigEnabled('property_access', $container, $config)) {

src/Symfony/Bundle/FrameworkBundle/Resources/config/annotations.php

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy