Browse Source

[DependencyInjection] fixed XmlDumper (corrected validity)

Martin Hason 14 years ago
parent
commit
6011073e7c

+ 3 - 2
src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php

@@ -47,8 +47,8 @@ class XmlDumper extends Dumper
         $container->setAttribute('xsi:schemaLocation', 'http://www.symfony-project.org/schema/dic/services http://www.symfony-project.org/schema/dic/services/services-1.0.xsd');
 
         $this->addParameters($container);
-        $this->addInterfaceInjectors($container);
         $this->addServices($container);
+        $this->addInterfaceInjectors($container);
 
         $this->document->appendChild($container);
         $xml = $this->document->saveXML();
@@ -195,8 +195,9 @@ class XmlDumper extends Dumper
         $withKeys = array_keys($parameters) !== range(0, count($parameters) - 1);
         foreach ($parameters as $key => $value) {
             $element = $this->document->createElement($type);
-            if ($withKeys)
+            if ($withKeys) {
                 $element->setAttribute('key', $key);
+            }
 
             if (is_array($value)) {
                 $element->setAttribute('type', 'collection');

+ 6 - 3
tests/Symfony/Tests/Component/DependencyInjection/Dumper/XmlDumperTest.php

@@ -83,6 +83,9 @@ class XmlDumperTest extends \PHPUnit_Framework_TestCase
     <parameter key=\"cla\">Fo</parameter>
     <parameter key=\"ss\">Class</parameter>
   </parameters>
+  <services>
+    <service id=\"foo\" class=\"%cla%o%ss%\"/>
+  </services>
   <interfaces>
     <interface class=\"FooClass\">
       <call method=\"setBar\">
@@ -90,11 +93,11 @@ class XmlDumperTest extends \PHPUnit_Framework_TestCase
       </call>
     </interface>
   </interfaces>
-  <services>
-    <service id=\"foo\" class=\"%cla%o%ss%\"/>
-  </services>
 </container>
 ", $classBody);
+        $dom = new \DOMDocument();
+        $dom->loadXML($classBody);
+        $this->assertTrue($dom->schemaValidate(__DIR__ . '/../../../../../../src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd'));
     }
 
     public function testDumpAnonymousServices()