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..da6e8893 100644
--- a/composer.json
+++ b/composer.json
@@ -12,19 +12,20 @@
],
"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/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": "~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.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": {