Skip to content

Commit 3ba80fc

Browse files
Switch to php service config files
1 parent 340cfc2 commit 3ba80fc

5 files changed

Lines changed: 92 additions & 79 deletions

File tree

src/DependencyInjection/BudgegeriaIntlExtension.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Symfony\Component\Config\FileLocator;
88
use Symfony\Component\DependencyInjection\ContainerBuilder;
99
use Symfony\Component\DependencyInjection\Extension\Extension;
10-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
10+
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
1111

1212
use function dirname;
1313

@@ -16,9 +16,9 @@ class BudgegeriaIntlExtension extends Extension
1616
/** @param mixed[] $configs */
1717
public function load(array $configs, ContainerBuilder $container): void
1818
{
19-
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__) . '/Resources/config'));
20-
$loader->load('formatter.xml');
21-
$loader->load('sorter.xml');
19+
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__) . '/Resources/config'));
20+
$loader->load('formatter.php');
21+
$loader->load('sorter.php');
2222

2323
$configuration = new Configuration();
2424
/** @phpstan-var array{locale: string, currency: string, sorter: array<string, array<string, mixed>>} $config */

src/Resources/config/formatter.php

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
6+
7+
use Budgegeria\Bundle\IntlBundle\Twig\IntlFormatterExtension;
8+
use Budgegeria\IntlFormat\Formatter\CurrencySymbolFormatter;
9+
use Budgegeria\IntlFormat\Formatter\ExceptionFormatter;
10+
use Budgegeria\IntlFormat\Formatter\FormatterInterface;
11+
use Budgegeria\IntlFormat\Formatter\LocaleFormatter;
12+
use Budgegeria\IntlFormat\Formatter\MessageFormatter;
13+
use Budgegeria\IntlFormat\Formatter\PrecisionNumberFormatter;
14+
use Budgegeria\IntlFormat\Formatter\TimeZoneFormatter;
15+
use Budgegeria\IntlFormat\IntlFormat;
16+
use Budgegeria\IntlFormat\IntlFormatInterface;
17+
use Budgegeria\IntlFormat\MessageParser\SprintfParser;
18+
19+
return static function (ContainerConfigurator $container): void {
20+
$services = $container->services();
21+
22+
$services->defaults()
23+
->private()
24+
->autowire()
25+
->autoconfigure();
26+
27+
$services->load('Budgegeria\\Bundle\\IntlBundle\\', '../../*')
28+
->exclude(['../../{DependencyInjection,Resources}']);
29+
30+
$services->instanceof(FormatterInterface::class)
31+
->tag('budgegeria_intl.formatter')
32+
->bind('$locale', '%budgegeria_intl.locale%');
33+
34+
$services->set(CurrencySymbolFormatter::class);
35+
36+
$services->set(ExceptionFormatter::class);
37+
38+
$services->set(LocaleFormatter::class);
39+
40+
$services->set(PrecisionNumberFormatter::class);
41+
42+
$services->set(TimeZoneFormatter::class);
43+
44+
$services->set('budgegeria_intl_bundle.message_number_formatter', MessageFormatter::class)
45+
->factory([null, 'createNumberValueFormatter']);
46+
47+
$services->set('budgegeria_intl_bundle.message_date_formatter', MessageFormatter::class)
48+
->factory([null, 'createDateValueFormatter']);
49+
50+
$services->set(SprintfParser::class);
51+
52+
$services->alias(IntlFormatInterface::class, IntlFormat::class);
53+
54+
$services->set(IntlFormat::class)
55+
->args([
56+
tagged_iterator('budgegeria_intl.formatter'),
57+
service(SprintfParser::class),
58+
]);
59+
60+
$services->set(IntlFormatterExtension::class)
61+
->bind('$currency', '%budgegeria_intl.currency%')
62+
->tag('twig.extension');
63+
};

src/Resources/config/formatter.xml

Lines changed: 0 additions & 54 deletions
This file was deleted.

src/Resources/config/sorter.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
6+
7+
use Budgegeria\IntlSort\Builder;
8+
use Budgegeria\IntlSort\ComparatorFactory\Standard;
9+
10+
return static function (ContainerConfigurator $container): void {
11+
$services = $container->services();
12+
13+
$services->defaults()
14+
->private()
15+
->autowire()
16+
->autoconfigure();
17+
18+
$services->set('budgegeria_intl_bundle.sorter.factory.standard', Standard::class);
19+
20+
$services->set('budgegeria_intl_bundle.sorter.builder.standard', Builder::class)
21+
->args([
22+
'%budgegeria_intl.locale%',
23+
service('budgegeria_intl_bundle.sorter.factory.standard'),
24+
]);
25+
};

src/Resources/config/sorter.xml

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)