Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 24b2849

Browse files
committed
[FrameworkBundle] Allow to disable annotations
1 parent 2cb902f commit 24b2849

File tree

5 files changed

+38
-37
lines changed

5 files changed

+38
-37
lines changed

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,20 @@ private function addValidationSection(ArrayNodeDefinition $rootNode)
489489
private function addAnnotationsSection(ArrayNodeDefinition $rootNode)
490490
{
491491
$rootNode
492+
->beforeNormalization()
493+
->always(function ($v) {
494+
if (!isset($v['annotations'])) {
495+
$v['annotations']['enabled'] = true;
496+
@trigger_error('You must explicitly define wheter to enable "framework.annotations" or not. It will be disabled by default in 4.0', E_USER_DEPRECATED);
497+
}
498+
499+
return $v;
500+
})
501+
->end()
492502
->children()
493503
->arrayNode('annotations')
494504
->info('annotation configuration')
495-
->addDefaultsIfNotSet()
505+
->canBeEnabled()
496506
->children()
497507
->scalarNode('cache')->defaultValue('file')->end()
498508
->scalarNode('file_cache_dir')->defaultValue('%kernel.cache_dir%/annotations')->end()

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

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class FrameworkExtension extends Extension
3838
private $translationConfigEnabled = false;
3939
private $sessionConfigEnabled = false;
4040
private $propertyAccessConfigEnabled = false;
41+
private $annotationsConfigEnabled = false;
4142

4243
/**
4344
* @var string|null
@@ -86,11 +87,16 @@ public function load(array $configs, ContainerBuilder $container)
8687
$this->registerSessionConfiguration($config['session'], $container, $loader);
8788
}
8889

89-
if($this->isConfigEnabled($container, $config['property_access'])) {
90+
if ($this->isConfigEnabled($container, $config['property_access'])) {
9091
$this->propertyAccessConfigEnabled = true;
9192
$this->registerPropertyAccessConfiguration($config['property_access'], $container, $loader);
9293
}
9394

95+
if ($this->isConfigEnabled($container, $config['annotations'])) {
96+
$this->annotationsConfigEnabled = true;
97+
$this->registerAnnotationsConfiguration($config['annotations'], $container, $loader);
98+
}
99+
94100
if ($this->isConfigEnabled($container, $config['request'])) {
95101
$this->registerRequestConfiguration($config['request'], $container, $loader);
96102
}
@@ -117,23 +123,23 @@ public function load(array $configs, ContainerBuilder $container)
117123
$this->registerTemplatingConfiguration($config['templating'], $config['ide'], $container, $loader);
118124
}
119125

120-
if($this->isConfigEnabled($container, $config['validation'])) {
126+
if ($this->isConfigEnabled($container, $config['validation'])) {
121127
$this->registerValidationConfiguration($config['validation'], $container, $loader);
122128
}
123129

124-
if($this->isConfigEnabled($container, $config['esi'])) {
130+
if ($this->isConfigEnabled($container, $config['esi'])) {
125131
$loader->load('esi.xml');
126132
}
127133

128-
if($this->isConfigEnabled($container, $config['ssi'])) {
134+
if ($this->isConfigEnabled($container, $config['ssi'])) {
129135
$loader->load('ssi.xml');
130136
}
131137

132-
if($this->isConfigEnabled($container, $config['fragments'])) {
138+
if ($this->isConfigEnabled($container, $config['fragments'])) {
133139
$this->registerFragmentsConfiguration($config['fragments'], $container, $loader);
134140
}
135141

136-
if($this->isConfigEnabled($container, $config['translator'])) {
142+
if ($this->isConfigEnabled($container, $config['translator'])) {
137143
$this->translationConfigEnabled = true;
138144
$this->registerTranslatorConfiguration($config['translator'], $container);
139145
}
@@ -144,10 +150,8 @@ public function load(array $configs, ContainerBuilder $container)
144150
$this->registerRouterConfiguration($config['router'], $container, $loader);
145151
}
146152

147-
$this->registerAnnotationsConfiguration($config['annotations'], $container, $loader);
148-
149153
if ($this->isConfigEnabled($container, $config['serializer'])) {
150-
$this->registerSerializerConfiguration($config, $container, $loader);
154+
$this->registerSerializerConfiguration($config['serializer'], $container, $loader);
151155
}
152156

153157
if ($this->isConfigEnabled($container, $config['property_info'])) {
@@ -224,7 +228,7 @@ public function getConfiguration(array $config, ContainerBuilder $container)
224228
*/
225229
private function registerFormConfiguration($config, ContainerBuilder $container, XmlFileLoader $loader)
226230
{
227-
if(!$this->propertyAccessConfigEnabled) {
231+
if (!$this->propertyAccessConfigEnabled) {
228232
throw new LogicException('"framework.property_access" must be enabled when "framework.form" is enabled.');
229233
}
230234

@@ -748,7 +752,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
748752
return;
749753
}
750754

751-
if(!$this->propertyAccessConfigEnabled) {
755+
if (!$this->propertyAccessConfigEnabled) {
752756
throw new LogicException('"framework.property_access" must be enabled when "framework.validator" is enabled.');
753757
}
754758

@@ -771,6 +775,9 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
771775
$definition->replaceArgument(0, $config['strict_email']);
772776

773777
if (array_key_exists('enable_annotations', $config) && $config['enable_annotations']) {
778+
if (!$this->annotationsConfigEnabled) {
779+
throw new \LogicException('"framework.annotations" must be enabled when "framework.serializer.enable_annotations" is set to true.');
780+
}
774781
$validatorBuilder->addMethodCall('enableAnnotationMapping', array(new Reference('annotation_reader')));
775782
}
776783

@@ -896,17 +903,18 @@ private function registerSecurityCsrfConfiguration(array $config, ContainerBuild
896903
*/
897904
private function registerSerializerConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
898905
{
899-
if(!$this->propertyAccessConfigEnabled) {
906+
if (!$this->propertyAccessConfigEnabled) {
900907
throw new LogicException('"framework.property_access" must be enabled when "framework.serializer" is enabled.');
901908
}
902909

903-
$config = $config['serializer'];
904-
905910
$loader->load('serializer.xml');
906911
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
907912

908913
$serializerLoaders = array();
909914
if (isset($config['enable_annotations']) && $config['enable_annotations']) {
915+
if (!$this->annotationsConfigEnabled) {
916+
throw new \LogicException('"framework.annotations" must be enabled when "framework.serializer.enable_annotations" is set to true.');
917+
}
910918
$annotationLoader = new Definition(
911919
'Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader',
912920
array(new Reference('annotation_reader'))

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,10 @@
1616

1717
class ConfigurationTest extends \PHPUnit_Framework_TestCase
1818
{
19-
// @todo remove this in 4.0
20-
private $explicitConfigurationNeeded = array(
21-
'property_access' => true,
22-
);
23-
2419
public function testDefaultConfig()
2520
{
2621
$processor = new Processor();
27-
$config = $processor->processConfiguration(new Configuration(true), array(
28-
$this->explicitConfigurationNeeded,
29-
array('secret' => 's3cr3t'),
30-
));
22+
$config = $processor->processConfiguration(new Configuration(true), array(array('secret' => 's3cr3t')));
3123

3224
$this->assertEquals(
3325
array_merge(array('secret' => 's3cr3t', 'trusted_hosts' => array()), self::getBundleDefaultConfig()),
@@ -43,7 +35,7 @@ public function testDoNoDuplicateDefaultFormResources()
4335
));
4436

4537
$processor = new Processor();
46-
$config = $processor->processConfiguration(new Configuration(true), array($this->explicitConfigurationNeeded, $input));
38+
$config = $processor->processConfiguration(new Configuration(true), array($input));
4739

4840
$this->assertEquals(array('FrameworkBundle:Form'), $config['templating']['form']['resources']);
4941
}
@@ -55,7 +47,7 @@ public function testValidTrustedProxies($trustedProxies, $processedProxies)
5547
{
5648
$processor = new Processor();
5749
$configuration = new Configuration(true);
58-
$config = $processor->processConfiguration($configuration, array($this->explicitConfigurationNeeded, array(
50+
$config = $processor->processConfiguration($configuration, array(array(
5951
'secret' => 's3cr3t',
6052
'trusted_proxies' => $trustedProxies,
6153
)));
@@ -86,7 +78,6 @@ public function testInvalidTypeTrustedProxies()
8678
$processor = new Processor();
8779
$configuration = new Configuration(true);
8880
$processor->processConfiguration($configuration, array(
89-
$this->explicitConfigurationNeeded,
9081
array(
9182
'secret' => 's3cr3t',
9283
'trusted_proxies' => 'Not an IP address',
@@ -103,7 +94,6 @@ public function testInvalidValueTrustedProxies()
10394
$configuration = new Configuration(true);
10495

10596
$processor->processConfiguration($configuration, array(
106-
$this->explicitConfigurationNeeded,
10797
array(
10898
'secret' => 's3cr3t',
10999
'trusted_proxies' => array('Not an IP address'),
@@ -115,7 +105,7 @@ public function testAssetsCanBeEnabled()
115105
{
116106
$processor = new Processor();
117107
$configuration = new Configuration(true);
118-
$config = $processor->processConfiguration($configuration, array($this->explicitConfigurationNeeded, array('assets' => null)));
108+
$config = $processor->processConfiguration($configuration, array(array('assets' => null)));
119109

120110
$defaultConfig = array(
121111
'enabled' => true,
@@ -139,7 +129,6 @@ public function testInvalidVersionStrategy()
139129
$processor = new Processor();
140130
$configuration = new Configuration(true);
141131
$processor->processConfiguration($configuration, array(
142-
$this->explicitConfigurationNeeded,
143132
array(
144133
'assets' => array(
145134
'base_urls' => '//example.com',
@@ -160,7 +149,6 @@ public function testInvalidPackageVersionStrategy()
160149
$configuration = new Configuration(true);
161150

162151
$processor->processConfiguration($configuration, array(
163-
$this->explicitConfigurationNeeded,
164152
array(
165153
'assets' => array(
166154
'base_urls' => '//example.com',
@@ -225,6 +213,7 @@ protected static function getBundleDefaultConfig()
225213
'strict_email' => false,
226214
),
227215
'annotations' => array(
216+
'enabled' => true,
228217
'cache' => 'file',
229218
'file_cache_dir' => '%kernel.cache_dir%/annotations',
230219
'debug' => '%kernel.debug%',

src/Symfony/Bundle/TwigBundle/Tests/Functional/CacheWarmingTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ public function registerContainerConfiguration(LoaderInterface $loader)
9090
$loader->load(function ($container) {
9191
$container->loadFromExtension('framework', array(
9292
'secret' => '$ecret',
93-
94-
// @todo remove this in 4.0
95-
'property_access' => false,
9693
));
9794
});
9895

src/Symfony/Bundle/TwigBundle/Tests/Functional/NoTemplatingEntryTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,6 @@ public function registerContainerConfiguration(LoaderInterface $loader)
6262
$loader->load(function ($container) {
6363
$container->loadFromExtension('framework', array(
6464
'secret' => '$ecret',
65-
66-
// @todo remove this in 4.0
67-
'property_access' => false,
6865
));
6966
});
7067
}

0 commit comments

Comments
 (0)