浏览代码

removed option to disable annotations as it leads to problems and is not really needed

Johannes Schmitt 14 年之前
父节点
当前提交
7c8594d069

+ 0 - 24
DependencyInjection/Compiler/SetMetadataDriversPass.php

@@ -1,24 +0,0 @@
-<?php
-
-namespace JMS\SerializerBundle\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Reference;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-class SetMetadataDriversPass implements CompilerPassInterface
-{
-    public function process(ContainerBuilder $container)
-    {
-        $drivers = array();
-        foreach ($container->findTaggedServiceIds('jms_serializer.metadata_driver') as $id => $attr) {
-            $drivers[] = new Reference($id);
-        }
-
-        $container
-            ->getDefinition('jms_serializer.metadata.chain_driver')
-            ->addArgument($drivers)
-        ;
-    }
-}

+ 0 - 1
DependencyInjection/Configuration.php

@@ -71,7 +71,6 @@ class Configuration implements ConfigurationInterface
                                     ->scalarNode('dir')->defaultValue('%kernel.cache_dir%/serializer')->end()
                                 ->end()
                             ->end()
-                            ->booleanNode('enable_annotations')->defaultTrue()->end()
                             ->booleanNode('auto_detection')->defaultTrue()->end()
                             ->arrayNode('directories')
                                 ->prototype('array')

+ 0 - 5
DependencyInjection/JMSSerializerExtension.php

@@ -99,11 +99,6 @@ class JMSSerializerExtension extends Extension
             ->getDefinition('jms_serializer.metadata.file_locator')
             ->replaceArgument(0, $directories)
         ;
-
-        // annotation driver
-        if (!$config['metadata']['enable_annotations']) {
-            $container->removeDefinition('jms_serializer.metadata.annotation_driver');
-        }
     }
 
     private function mergeConfigs(array $configs, $debug)

+ 0 - 2
JMSSerializerBundle.php

@@ -18,7 +18,6 @@
 
 namespace JMS\SerializerBundle;
 
-use JMS\SerializerBundle\DependencyInjection\Compiler\SetMetadataDriversPass;
 use JMS\SerializerBundle\DependencyInjection\Compiler\SetCustomHandlersPass;
 use JMS\SerializerBundle\DependencyInjection\Compiler\SetVisitorsPass;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -30,6 +29,5 @@ class JMSSerializerBundle extends Bundle
     {
         $builder->addCompilerPass(new SetVisitorsPass());
         $builder->addCompilerPass(new SetCustomHandlersPass());
-        $builder->addCompilerPass(new SetMetadataDriversPass());
     }
 }

+ 8 - 5
Resources/config/services.xml

@@ -41,21 +41,24 @@
         </service>
         <service id="jms_serializer.metadata.yaml_driver" class="%jms_serializer.metadata.yaml_driver.class%" public="false">
             <argument type="service" id="jms_serializer.metadata.file_locator" />
-            <tag name="jms_serializer.metadata_driver" />
         </service>
         <service id="jms_serializer.metadata.xml_driver" class="%jms_serializer.metadata.xml_driver.class%" public="false">
             <argument type="service" id="jms_serializer.metadata.file_locator" />
-            <tag name="jms_serializer.metadata_driver" />
         </service>
         <service id="jms_serializer.metadata.php_driver" class="%jms_serializer.metadata.php_driver.class%" public="false">
             <argument type="service" id="jms_serializer.metadata.file_locator" />
-            <tag name="jms_serializer.metadata_driver" />
         </service>
         <service id="jms_serializer.metadata.annotation_driver" class="%jms_serializer.metadata.annotation_driver.class%" public="false">
             <argument type="service" id="annotation_reader" />
-            <tag name="jms_serializer.metadata_driver" />
         </service>
-        <service id="jms_serializer.metadata.chain_driver" class="%jms_serializer.metadata.chain_driver.class%" public="false" />
+        <service id="jms_serializer.metadata.chain_driver" class="%jms_serializer.metadata.chain_driver.class%" public="false">
+            <argument type="collection">
+                <argument type="service" id="jms_serializer.metadata.yaml_driver" />
+                <argument type="service" id="jms_serializer.metadata.xml_driver" />
+                <argument type="service" id="jms_serializer.metadata.php_driver" />
+                <argument type="service" id="jms_serializer.metadata.annotation_driver" />
+            </argument>
+        </service>
         <service id="jms_serializer.metadata.lazy_loading_driver" class="%jms_serializer.metadata.lazy_loading_driver.class%">
             <argument type="service" id="service_container" />
             <argument>jms_serializer.metadata_driver</argument>

+ 0 - 2
Resources/doc/index.rst

@@ -72,8 +72,6 @@ suit your needs::
             file_cache:
                 dir: %kernel.cache_dir%/serializer
             
-            enable_annotations: true
-            
             # Using auto-detection, the mapping files for each bundle will be 
             # expected in the Resources/config/serializer directory.
             #