diff --git a/UPGRADE-3.2.md b/UPGRADE-3.2.md index d3488ce0d3..7b1189b41c 100644 --- a/UPGRADE-3.2.md +++ b/UPGRADE-3.2.md @@ -4,6 +4,9 @@ UPGRADE FROM 3.1 to 3.2 FrameworkBundle --------------- + * The `symfony/translation` dependency has been removed; require it via `composer + require symfony/translation` if you depend on it and don't already depend on + `symfony/symfony` * The `symfony/asset` dependency has been removed; require it via `composer require symfony/asset` if you depend on it and don't already depend on `symfony/symfony` diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index ec9447cf4a..3e47378a46 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 3.2.0 ----- + * Removed `symfony/translation` from the list of required dependencies in `composer.json` * Removed `symfony/asset` from the list of required dependencies in `composer.json` * The `Resources/public/images/*` files have been removed. * The `Resources/public/css/*.css` files have been removed (they are now inlined in TwigBundle). diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php index 138964e286..e789a9525f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php @@ -84,6 +84,18 @@ EOF ; } + /** + * {@inheritdoc} + */ + public function isEnabled() + { + if (!class_exists('Symfony\Component\Translation\Translator')) { + return false; + } + + return parent::isEnabled(); + } + /** * {@inheritdoc} */ diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php index 9c74f51d3f..04c9a4d118 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php @@ -66,6 +66,18 @@ EOF ; } + /** + * {@inheritdoc} + */ + public function isEnabled() + { + if (!class_exists('Symfony\Component\Translation\Translator')) { + return false; + } + + return parent::isEnabled(); + } + /** * {@inheritdoc} */ diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 00714cbc96..a3a50eed2d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -70,11 +70,6 @@ class FrameworkExtension extends Extension $loader->load('services.xml'); $loader->load('fragment_renderer.xml'); - // A translator must always be registered (as support is included by - // default in the Form component). If disabled, an identity translator - // will be used and everything will still work as expected. - $loader->load('translation.xml'); - // Property access is used by both the Form and the Validator component $loader->load('property_access.xml'); @@ -84,6 +79,17 @@ class FrameworkExtension extends Extension $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); + // A translator must always be registered (as support is included by + // default in the Form component). If disabled, an identity translator + // will be used and everything will still work as expected. + if (class_exists('Symfony\Component\Translation\Translator') || $this->isConfigEnabled($container, $config['form'])) { + if (!class_exists('Symfony\Component\Translation\Translator')) { + throw new LogicException('Form support cannot be enabled as the Translation component is not installed.'); + } + + $loader->load('translation.xml'); + } + if (isset($config['secret'])) { $container->setParameter('kernel.secret', $config['secret']); } @@ -762,6 +768,11 @@ class FrameworkExtension extends Extension if (!$this->isConfigEnabled($container, $config)) { return; } + + if (!class_exists('Symfony\Component\Translation\Translator')) { + throw new LogicException('Translation support cannot be enabled as the Translator component is not installed.'); + } + $this->translationConfigEnabled = true; // Use the "real" translator instead of the identity default diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 63055fd303..e1648befed 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -85,8 +85,10 @@ class FrameworkBundle extends Bundle $container->addCompilerPass(new AddCacheWarmerPass()); $container->addCompilerPass(new AddCacheClearerPass()); $container->addCompilerPass(new AddExpressionLanguageProvidersPass()); - $container->addCompilerPass(new TranslationExtractorPass()); - $container->addCompilerPass(new TranslationDumperPass()); + if (class_exists('Symfony\Component\Translation\Translator')) { + $container->addCompilerPass(new TranslationExtractorPass()); + $container->addCompilerPass(new TranslationDumperPass()); + } $container->addCompilerPass(new FragmentRendererPass(), PassConfig::TYPE_AFTER_REMOVING); $container->addCompilerPass(new SerializerPass()); $container->addCompilerPass(new PropertyInfoPass()); diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml index d7095605e3..ba1c3bc168 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml @@ -131,5 +131,11 @@ + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml index 5c1f78b1c4..72a200b313 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml @@ -56,12 +56,6 @@ - - - - - - diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index c461e975b9..ec8debfaff 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -32,7 +32,6 @@ "symfony/security-csrf": "~2.8|~3.0", "symfony/stopwatch": "~2.8|~3.0", "symfony/templating": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", "doctrine/cache": "~1.0", "doctrine/annotations": "~1.0" }, @@ -48,6 +47,7 @@ "symfony/expression-language": "~2.8|~3.0", "symfony/process": "~2.8|~3.0", "symfony/serializer": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", "symfony/validator": "~3.2", "symfony/yaml": "~3.2", "symfony/property-info": "~2.8|~3.0",