Bläddra i källkod

Fixed assets_base_urls configuration

Christophe Coevoet 14 år sedan
förälder
incheckning
db168cc40d

+ 13 - 1
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

@@ -144,7 +144,19 @@ class Configuration
             ->arrayNode('templating')
                 ->canBeUnset()
                 ->scalarNode('assets_version')->end()
-                ->scalarNode('assets_base_urls')->end()
+                ->fixXmlConfig('assets_base_url')
+                ->arrayNode('assets_base_urls')
+                    ->beforeNormalization()
+                        ->ifTrue(function($v){ return !is_array($v); })
+                        ->then(function($v){ return array($v); })
+                    ->end()
+                    ->prototype('scalar')
+                        ->beforeNormalization()
+                            ->ifTrue(function($v) { return is_array($v) && isset($v['value']); })
+                            ->then(function($v){ return $v['value']; })
+                        ->end()
+                    ->end()
+                ->end()
                 ->scalarNode('cache')->end()
                 ->scalarNode('cache_warmer')->end()
                 ->fixXmlConfig('engine')

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

@@ -90,10 +90,10 @@
         <xsd:sequence>
             <xsd:element name="loader" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
             <xsd:element name="engine" type="templating_engine" minOccurs="1" maxOccurs="unbounded" />
+            <xsd:element name="assets-base-url" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
         </xsd:sequence>
 
         <xsd:attribute name="assets-version" type="xsd:string" />
-        <xsd:attribute name="assets-base-urls" type="xsd:string" />
         <xsd:attribute name="cache" type="xsd:string" />
         <xsd:attribute name="cache-warmer" type="cache_warmer" />
     </xsd:complexType>

+ 2 - 2
src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

@@ -75,7 +75,7 @@ abstract class FrameworkExtensionTest extends TestCase
         $this->assertTrue($container->getDefinition('session')->hasMethodCall('start'));
         $this->assertEquals('Session', $container->getParameter('session.class'));
         $this->assertEquals('session.storage.native', (string) $container->getAlias('session.storage'));
-        
+
         $options = $container->getParameter('session.storage.native.options');
         $this->assertEquals('_SYMFONY', $options['name']);
         $this->assertEquals(86400, $options['lifetime']);
@@ -103,7 +103,7 @@ abstract class FrameworkExtensionTest extends TestCase
 
         $this->assertTrue($container->hasDefinition('templating.name_parser'), '->registerTemplatingConfiguration() loads templating.xml');
         $this->assertEquals('SomeVersionScheme', $container->getParameter('templating.assets.version'));
-        $this->assertEquals('http://cdn.example.com', $container->getParameter('templating.assets.base_urls'));
+        $this->assertEquals(array('http://cdn.example.com'), $container->getParameter('templating.assets.base_urls'));
 
         $this->assertTrue($container->getDefinition('templating.cache_warmer.template_paths')->hasTag('kernel.cache_warmer'), '->registerTemplatingConfiguration() tags templating cache warmer if cache warming is set');
         $this->assertEquals('templating.locator.cached', (string) $container->getAlias('templating.locator'), '->registerTemplatingConfiguration() changes templating.locator alias to cached if cache warming is set');