Skip to content

Commit c9d005c

Browse files
[di] use php for service definition
1 parent 703bdc1 commit c9d005c

File tree

4 files changed

+46
-38
lines changed

4 files changed

+46
-38
lines changed

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
"php": ">=8.2",
99
"ibericode/vat": "^2.1",
1010
"symfony/framework-bundle": "^7.0|^8.0",
11-
"symfony/validator": "^7.0|^8.0",
12-
"symfony/yaml": "^7.0|^8.0"
11+
"symfony/validator": "^7.0|^8.0"
1312
},
1413
"require-dev": {
1514
"ext-intl": "*",

src/DependencyInjection/VatExtension.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66
use Symfony\Component\DependencyInjection\ContainerBuilder;
77
use Symfony\Component\DependencyInjection\Extension\Extension;
88
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
9+
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
910

1011
class VatExtension extends Extension
1112
{
1213
public function load(array $configs, ContainerBuilder $container): void
1314
{
14-
$loader = new YamlFileLoader(
15+
$loader = new PhpFileLoader(
1516
$container,
1617
new FileLocator(dirname(__DIR__, 1) . '/config')
1718
);
18-
$loader->load('services.yaml');
19+
$loader->load('services.php');
1920
}
2021
}

src/config/services.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
4+
// config/services.php
5+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
6+
7+
use Ibericode\Vat\Countries;
8+
use Ibericode\Vat\Validator;
9+
use Ibericode\Vat\Rates;
10+
use Ibericode\Vat\Geolocator;
11+
use Ibericode\Vat\Bundle\Validator\Constraints\VatNumberValidator;
12+
13+
return function (ContainerConfigurator $container): void {
14+
$parameters = $container->parameters();
15+
$parameters->set('ibericode_vat.rates.storage_path', '%kernel.project_dir%/var/vat-rates');
16+
$parameters->set('ibericode_vat.rates.ttl', 86400);
17+
$parameters->set('ibericode_vat.geolocator.service', 'ip2c.org');
18+
19+
$services = $container->services();
20+
$services->set('ibericode_vat.countries', Countries::class);
21+
$services->set('ibericode_vat.validator', Validator::class);
22+
$services->set('ibericode_vat.rates', Rates::class)
23+
->args([
24+
'$storagePath' => '%ibericode_vat.rates.storage_path%',
25+
'$refreshInterval' => '%ibericode_vat.rates.ttl%',
26+
]);
27+
$services->set('ibericode_vat.geolocator', Geolocator::class)
28+
->args([
29+
'$service' => '%ibericode_vat.geolocator.service%',
30+
]);
31+
$services->set('ibericode_vat.validator.vat_number_validator', VatNumberValidator::class)
32+
->args([
33+
'$validator' => service('ibericode_vat.validator')
34+
]);
35+
36+
37+
$services->alias(Countries::class, 'ibericode_vat.countries');
38+
$services->alias(Rates::class, 'ibericode_vat.rates');
39+
$services->alias(Geolocator::class, 'ibericode_vat.geolocator');
40+
$services->alias(Validator::class, 'ibericode_vat.validator');
41+
$services->alias(VatNumberValidator::class, 'ibericode_vat.validator.vat_number_validator');
42+
};

src/config/services.yaml

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

0 commit comments

Comments
 (0)