From d081470f0ef43de2e10cf5f6a13984ffee03946f Mon Sep 17 00:00:00 2001 From: Adam Reece Date: Wed, 17 Dec 2025 15:02:08 +0000 Subject: [PATCH 1/4] Symfony 8 support. --- .../BazingaJsTranslationExtension.php | 8 ++--- Resources/config/controllers.php | 22 ++++++++++++ Resources/config/controllers.xml | 22 ------------ Resources/config/services.php | 34 +++++++++++++++++++ Resources/config/services.xml | 30 ---------------- 5 files changed, 60 insertions(+), 56 deletions(-) create mode 100644 Resources/config/controllers.php delete mode 100644 Resources/config/controllers.xml create mode 100644 Resources/config/services.php delete mode 100644 Resources/config/services.xml diff --git a/DependencyInjection/BazingaJsTranslationExtension.php b/DependencyInjection/BazingaJsTranslationExtension.php index 2859b28a..e976804c 100644 --- a/DependencyInjection/BazingaJsTranslationExtension.php +++ b/DependencyInjection/BazingaJsTranslationExtension.php @@ -4,7 +4,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; use Symfony\Component\Config\FileLocator; use Symfony\Component\Config\Definition\Processor; @@ -22,9 +22,9 @@ public function load(array $configs, ContainerBuilder $container): void $configuration = new Configuration($container->getParameter('kernel.debug')); $config = $processor->processConfiguration($configuration, $configs); - $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.xml'); - $loader->load('controllers.xml'); + $loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('services.php'); + $loader->load('controllers.php'); $container ->getDefinition('bazinga.jstranslation.controller') diff --git a/Resources/config/controllers.php b/Resources/config/controllers.php new file mode 100644 index 00000000..0a15e680 --- /dev/null +++ b/Resources/config/controllers.php @@ -0,0 +1,22 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('bazinga.jstranslation.controller.class', \Bazinga\Bundle\JsTranslationBundle\Controller\Controller::class); + + $services->set('bazinga.jstranslation.controller', '%bazinga.jstranslation.controller.class%') + ->public() + ->args([ + service('translator'), + service('twig'), + service('bazinga.jstranslation.translation_finder'), + '%kernel.cache_dir%/bazinga-js-translation', + '%kernel.debug%', + '', // fallback (locale) + '', // default domain + '', // http cache time + ]); +}; diff --git a/Resources/config/controllers.xml b/Resources/config/controllers.xml deleted file mode 100644 index 86080cda..00000000 --- a/Resources/config/controllers.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Bazinga\Bundle\JsTranslationBundle\Controller\Controller - - - - - - - - %kernel.cache_dir%/bazinga-js-translation - %kernel.debug% - - - - - - diff --git a/Resources/config/services.php b/Resources/config/services.php new file mode 100644 index 00000000..1ef7f60f --- /dev/null +++ b/Resources/config/services.php @@ -0,0 +1,34 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('bazinga.jstranslation.translation_finder.class', \Bazinga\Bundle\JsTranslationBundle\Finder\TranslationFinder::class); + $parameters->set('bazinga.jstranslation.translation_dumper.class', \Bazinga\Bundle\JsTranslationBundle\Dumper\TranslationDumper::class); + + $services->set('bazinga.jstranslation.translation_finder', '%bazinga.jstranslation.translation_finder.class%') + ->public() + ->args([[]]); // all resource files paths from the framework bundle + + $services->set('bazinga.jstranslation.translation_dumper', '%bazinga.jstranslation.translation_dumper.class%') + ->public() + ->args([ + service('twig'), + service('bazinga.jstranslation.translation_finder'), + service('filesystem'), + '', // fallback (locale) + '', // default domain + '', // active locales + '', // active domains + ]); + + $services->set('bazinga.jstranslation.dump_command', \Bazinga\Bundle\JsTranslationBundle\Command\DumpCommand::class) + ->public() + ->args([ + service('bazinga.jstranslation.translation_dumper'), + '%kernel.project_dir%', + ]) + ->tag('console.command', ['command' => 'bazinga:js-translation:dump']); +}; diff --git a/Resources/config/services.xml b/Resources/config/services.xml deleted file mode 100644 index f2fa955a..00000000 --- a/Resources/config/services.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - Bazinga\Bundle\JsTranslationBundle\Finder\TranslationFinder - Bazinga\Bundle\JsTranslationBundle\Dumper\TranslationDumper - - - - - - - - - - - - - - - - - - %kernel.project_dir% - - - - From 84dfb3b0d11cec813ab499028ea19bdba60c403f Mon Sep 17 00:00:00 2001 From: Adam Reece Date: Tue, 27 Jan 2026 15:34:34 +0000 Subject: [PATCH 2/4] PR feedback: Use `abstract_arg()` in place of where XML comments were. --- Resources/config/controllers.php | 6 +++--- Resources/config/services.php | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/config/controllers.php b/Resources/config/controllers.php index 0a15e680..7d0a19e6 100644 --- a/Resources/config/controllers.php +++ b/Resources/config/controllers.php @@ -15,8 +15,8 @@ service('bazinga.jstranslation.translation_finder'), '%kernel.cache_dir%/bazinga-js-translation', '%kernel.debug%', - '', // fallback (locale) - '', // default domain - '', // http cache time + abstract_arg('fallback (locale)'), + abstract_arg('default domain'), + abstract_arg('http cache time') ]); }; diff --git a/Resources/config/services.php b/Resources/config/services.php index 1ef7f60f..6d5c3397 100644 --- a/Resources/config/services.php +++ b/Resources/config/services.php @@ -18,10 +18,10 @@ service('twig'), service('bazinga.jstranslation.translation_finder'), service('filesystem'), - '', // fallback (locale) - '', // default domain - '', // active locales - '', // active domains + abstract_arg('fallback (locale)'), + abstract_arg('default domain'), + abstract_arg('active locales'), + abstract_arg('active domains') ]); $services->set('bazinga.jstranslation.dump_command', \Bazinga\Bundle\JsTranslationBundle\Command\DumpCommand::class) From 4e9497de06ff4324fae9b974f71a9c81ec5f433d Mon Sep 17 00:00:00 2001 From: Adam Reece Date: Wed, 4 Feb 2026 10:01:32 +0000 Subject: [PATCH 3/4] Symfony 8 support. --- .../BazingaJsTranslationExtension.php | 8 ++--- Resources/config/controllers.php | 22 ++++++++++++ Resources/config/controllers.xml | 22 ------------ Resources/config/services.php | 34 +++++++++++++++++++ Resources/config/services.xml | 30 ---------------- composer.json | 22 ++++++------ 6 files changed, 71 insertions(+), 67 deletions(-) create mode 100644 Resources/config/controllers.php delete mode 100644 Resources/config/controllers.xml create mode 100644 Resources/config/services.php delete mode 100644 Resources/config/services.xml diff --git a/DependencyInjection/BazingaJsTranslationExtension.php b/DependencyInjection/BazingaJsTranslationExtension.php index 2859b28a..e976804c 100644 --- a/DependencyInjection/BazingaJsTranslationExtension.php +++ b/DependencyInjection/BazingaJsTranslationExtension.php @@ -4,7 +4,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; use Symfony\Component\Config\FileLocator; use Symfony\Component\Config\Definition\Processor; @@ -22,9 +22,9 @@ public function load(array $configs, ContainerBuilder $container): void $configuration = new Configuration($container->getParameter('kernel.debug')); $config = $processor->processConfiguration($configuration, $configs); - $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.xml'); - $loader->load('controllers.xml'); + $loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('services.php'); + $loader->load('controllers.php'); $container ->getDefinition('bazinga.jstranslation.controller') diff --git a/Resources/config/controllers.php b/Resources/config/controllers.php new file mode 100644 index 00000000..7d0a19e6 --- /dev/null +++ b/Resources/config/controllers.php @@ -0,0 +1,22 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('bazinga.jstranslation.controller.class', \Bazinga\Bundle\JsTranslationBundle\Controller\Controller::class); + + $services->set('bazinga.jstranslation.controller', '%bazinga.jstranslation.controller.class%') + ->public() + ->args([ + service('translator'), + service('twig'), + service('bazinga.jstranslation.translation_finder'), + '%kernel.cache_dir%/bazinga-js-translation', + '%kernel.debug%', + abstract_arg('fallback (locale)'), + abstract_arg('default domain'), + abstract_arg('http cache time') + ]); +}; diff --git a/Resources/config/controllers.xml b/Resources/config/controllers.xml deleted file mode 100644 index 86080cda..00000000 --- a/Resources/config/controllers.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Bazinga\Bundle\JsTranslationBundle\Controller\Controller - - - - - - - - %kernel.cache_dir%/bazinga-js-translation - %kernel.debug% - - - - - - diff --git a/Resources/config/services.php b/Resources/config/services.php new file mode 100644 index 00000000..6d5c3397 --- /dev/null +++ b/Resources/config/services.php @@ -0,0 +1,34 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('bazinga.jstranslation.translation_finder.class', \Bazinga\Bundle\JsTranslationBundle\Finder\TranslationFinder::class); + $parameters->set('bazinga.jstranslation.translation_dumper.class', \Bazinga\Bundle\JsTranslationBundle\Dumper\TranslationDumper::class); + + $services->set('bazinga.jstranslation.translation_finder', '%bazinga.jstranslation.translation_finder.class%') + ->public() + ->args([[]]); // all resource files paths from the framework bundle + + $services->set('bazinga.jstranslation.translation_dumper', '%bazinga.jstranslation.translation_dumper.class%') + ->public() + ->args([ + service('twig'), + service('bazinga.jstranslation.translation_finder'), + service('filesystem'), + abstract_arg('fallback (locale)'), + abstract_arg('default domain'), + abstract_arg('active locales'), + abstract_arg('active domains') + ]); + + $services->set('bazinga.jstranslation.dump_command', \Bazinga\Bundle\JsTranslationBundle\Command\DumpCommand::class) + ->public() + ->args([ + service('bazinga.jstranslation.translation_dumper'), + '%kernel.project_dir%', + ]) + ->tag('console.command', ['command' => 'bazinga:js-translation:dump']); +}; diff --git a/Resources/config/services.xml b/Resources/config/services.xml deleted file mode 100644 index f2fa955a..00000000 --- a/Resources/config/services.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - Bazinga\Bundle\JsTranslationBundle\Finder\TranslationFinder - Bazinga\Bundle\JsTranslationBundle\Dumper\TranslationDumper - - - - - - - - - - - - - - - - - - %kernel.project_dir% - - - - diff --git a/composer.json b/composer.json index 258d5ea8..6c0438df 100644 --- a/composer.json +++ b/composer.json @@ -12,19 +12,19 @@ ], "require": { "php": ">=7.4", - "symfony/framework-bundle": "~4.4|~5.0|~6.0|~7.0", - "symfony/finder": "~4.4|~5.0|~6.0|~7.0", - "symfony/console": "~4.4|~5.0|~6.0|~7.0", - "symfony/intl": "~4.4|~5.0|~6.0|~7.0", - "symfony/translation": "~4.4|~5.0|~6.0|~7.0", - "symfony/twig-bundle": "~4.4|~5.0|~6.0|~7.0" + "symfony/framework-bundle": "~5.0|~6.0|~7.0|~8.0", + "symfony/finder": "~5.0|~6.0|~7.0|~8.0", + "symfony/console": "~5.0|~6.0|~7.0|~8.0", + "symfony/intl": "~5.0|~6.0|~7.0|~8.0", + "symfony/translation": "~5.0|~6.0|~7.0|~8.0", + "symfony/twig-bundle": "~5.0|~6.0|~7.0|~8.0" }, "require-dev": { - "symfony/asset": "~4.4|~5.0|~6.0|~7.0", - "symfony/filesystem": "~4.4|~5.0|~6.0|~7.0", - "symfony/yaml": "~4.4|~5.0|~6.0|~7.0", - "symfony/browser-kit": "~4.4|~5.0|~6.0|~7.0", - "symfony/phpunit-bridge": "^5.0|^6.0|~7.0", + "symfony/asset": "~5.0|~6.0|~7.0|~8.0", + "symfony/filesystem": "~5.0|~6.0|~7.0|~8.0", + "symfony/yaml": "~5.0|~6.0|~7.0|~8.0", + "symfony/browser-kit": "~5.0|~6.0|~7.0|~8.0", + "symfony/phpunit-bridge": "^5.0|^6.0|~7.0|~8.0", "phpunit/phpunit": "^4.8|~5.7|~6.5|~8" }, "replace": { From 6a6632f52f0b90dc4fcd31da6fa4d4e2b0a3567f Mon Sep 17 00:00:00 2001 From: Adam Reece Date: Thu, 19 Feb 2026 15:04:29 +0000 Subject: [PATCH 4/4] Composer: Bumped Symfony support for compatibility with PHP DSL configurations. - 5.0 changed to 5.4 - Added "symfony/dependency-injection" --- composer.json | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 6c0438df..da6e8893 100644 --- a/composer.json +++ b/composer.json @@ -12,19 +12,20 @@ ], "require": { "php": ">=7.4", - "symfony/framework-bundle": "~5.0|~6.0|~7.0|~8.0", - "symfony/finder": "~5.0|~6.0|~7.0|~8.0", - "symfony/console": "~5.0|~6.0|~7.0|~8.0", - "symfony/intl": "~5.0|~6.0|~7.0|~8.0", - "symfony/translation": "~5.0|~6.0|~7.0|~8.0", - "symfony/twig-bundle": "~5.0|~6.0|~7.0|~8.0" + "symfony/dependency-injection": "~5.4|~6.0|~7.0|~8.0", + "symfony/framework-bundle": "~5.4|~6.0|~7.0|~8.0", + "symfony/finder": "~5.4|~6.0|~7.0|~8.0", + "symfony/console": "~5.4|~6.0|~7.0|~8.0", + "symfony/intl": "~5.4|~6.0|~7.0|~8.0", + "symfony/translation": "~5.4|~6.0|~7.0|~8.0", + "symfony/twig-bundle": "~5.4|~6.0|~7.0|~8.0" }, "require-dev": { - "symfony/asset": "~5.0|~6.0|~7.0|~8.0", - "symfony/filesystem": "~5.0|~6.0|~7.0|~8.0", - "symfony/yaml": "~5.0|~6.0|~7.0|~8.0", - "symfony/browser-kit": "~5.0|~6.0|~7.0|~8.0", - "symfony/phpunit-bridge": "^5.0|^6.0|~7.0|~8.0", + "symfony/asset": "~5.4|~6.0|~7.0|~8.0", + "symfony/filesystem": "~5.4|~6.0|~7.0|~8.0", + "symfony/yaml": "~5.4|~6.0|~7.0|~8.0", + "symfony/browser-kit": "~5.4|~6.0|~7.0|~8.0", + "symfony/phpunit-bridge": "^5.4|^6.0|~7.0|~8.0", "phpunit/phpunit": "^4.8|~5.7|~6.5|~8" }, "replace": {