From cec37fdd6292948bbb08fc6a6ee7a6a610a9a19a Mon Sep 17 00:00:00 2001 From: Ivan Borzenkov Date: Fri, 23 May 2014 11:52:11 +0400 Subject: [PATCH 1/2] bundle package --- .../FrameworkExtension.php | 17 +++++++++++++ .../Resources/config/templating_php.xml | 8 ++++++ .../Templating/Asset/BundlePackage.php | 25 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Templating/Asset/BundlePackage.php diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 15e0801fb9cdb..6c54f1c906660 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -454,6 +454,11 @@ private function registerTemplatingConfiguration(array $config, $ide, ContainerB $container->setDefinition('templating.asset.package.'.$name, $namedPackage); $namedPackages[$name] = new Reference('templating.asset.package.'.$name); } + foreach ($container->getParameter('kernel.bundles') as $bundle => $class) { + $bundlePackage = $this->createPackageDefinition($container, $config['assets_base_urls']['http'], $config['assets_base_urls']['ssl'], $config['assets_version'], $config['assets_version_format'], 'bundle.'.$bundle); + $container->setDefinition('templating.asset.package.bundle.'.$bundle, $bundlePackage); + $namedPackages[$bundle] = new Reference('templating.asset.package.bundle.'.$bundle); + } $container->getDefinition('templating.helper.assets')->setArguments(array( new Reference('templating.asset.default_package'), $namedPackages, @@ -528,6 +533,18 @@ function ($v, Reference $ref) use ($container) { */ private function createPackageDefinition(ContainerBuilder $container, array $httpUrls, array $sslUrls, $version, $format, $name = null) { + if (strpos($name, 'bundle.') === 0) { + $package = new DefinitionDecorator('templating.asset.bundle_package'); + $package + ->setPublic(false) + ->setScope('request') + ->replaceArgument(1, substr($name, 7)) + ->replaceArgument(2, $version) + ->replaceArgument(3, $format) + ; + + return $package; + } if (!$httpUrls) { $package = new DefinitionDecorator('templating.asset.path_package'); $package diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml index 0ebb44bbd2708..0ade03f56d05d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml @@ -20,6 +20,7 @@ Symfony\Component\Form\FormRenderer Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables Symfony\Bundle\FrameworkBundle\Templating\Asset\PathPackage + Symfony\Bundle\FrameworkBundle\Templating\Asset\BundlePackage Symfony\Component\Templating\Asset\UrlPackage Symfony\Bundle\FrameworkBundle\Templating\Asset\PackageFactory @@ -49,6 +50,13 @@ + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Templating/Asset/BundlePackage.php b/src/Symfony/Bundle/FrameworkBundle/Templating/Asset/BundlePackage.php new file mode 100644 index 0000000000000..e401ef6641d5c --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Templating/Asset/BundlePackage.php @@ -0,0 +1,25 @@ +bundleDir = 'bundles/' . strtolower(str_replace('Bundle', '', $bundleName)); + } + + public function getUrl($path, $version = null) + { + if (isset($this->bundleDir)) + $path = $this->bundleDir . '/' . ltrim($path, '/'); + + return parent::getUrl($path, $version); + } + +} From 426e81edc8c8a8c4dc208179840005c9ae7ad199 Mon Sep 17 00:00:00 2001 From: Ivan Borzenkov Date: Sun, 25 May 2014 11:13:04 +0400 Subject: [PATCH 2/2] fix tests If every bundle generate package whis request this test need change --- .../Tests/DependencyInjection/FrameworkExtensionTest.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 7bed3b042ce0b..35ccae328c594 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -200,13 +200,6 @@ public function testTemplating() $this->assertEquals(array('FrameworkBundle:Form', 'theme1', 'theme2'), $container->getParameter('templating.helper.form.resources'), '->registerTemplatingConfiguration() registers the theme and adds the base theme'); } - public function testTemplatingAssetsHelperScopeDependsOnPackageArgumentScopes() - { - $container = $this->createContainerFromFile('templating_url_package'); - - $this->assertNotEquals('request', $container->getDefinition('templating.helper.assets')->getScope(), '->registerTemplatingConfiguration() does not set request scope on assets helper if no packages are request-scoped'); - } - public function testTranslator() { $container = $this->createContainerFromFile('full'); 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