Skip to content

Commit 1b46361

Browse files
authored
Merge pull request #22 from temp/fix/services
fix: Switch to yaml configs, switch to class based service IDs, add m…
2 parents 615db67 + f94a6f4 commit 1b46361

18 files changed

+90
-132
lines changed

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
"phpunit/phpunit": "^10.1",
2525
"predis/predis": "^2.2",
2626
"symfony/clock": "^6.3",
27-
"symfony/config": "^6.0",
28-
"symfony/dependency-injection": "^6.0",
29-
"symfony/http-foundation": "^6.0",
30-
"symfony/http-kernel": "^6.0",
31-
"symfony/routing": "^6.0",
32-
"symfony/security-core": "^6.0",
27+
"symfony/config": "^6.3",
28+
"symfony/dependency-injection": "^6.3",
29+
"symfony/http-foundation": "^6.3",
30+
"symfony/http-kernel": "^6.3",
31+
"symfony/routing": "^6.3",
32+
"symfony/security-core": "^6.3",
3333
"phpstan/phpstan-phpunit": "^1.3",
3434
"phpstan/phpstan-symfony": "^1.3"
3535
},

src/Bundle/DependencyInjection/BrainbitsBlockingExtension.php

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313

1414
namespace Brainbits\Blocking\Bundle\DependencyInjection;
1515

16+
use Brainbits\Blocking\Owner\OwnerFactoryInterface;
17+
use Brainbits\Blocking\Storage\StorageInterface;
1618
use InvalidArgumentException;
1719
use Symfony\Component\Config\FileLocator;
1820
use Symfony\Component\DependencyInjection\ContainerBuilder;
19-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
2021
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
2122
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2223

@@ -27,7 +28,6 @@ class BrainbitsBlockingExtension extends Extension
2728
/** @param array<int, mixed> $configs */
2829
public function load(array $configs, ContainerBuilder $container): void
2930
{
30-
$xmlLoader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
3131
$yamlLoader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
3232
$yamlLoader->load('services.yaml');
3333
$configuration = $this->getConfiguration($configs, $container);
@@ -39,8 +39,12 @@ public function load(array $configs, ContainerBuilder $container): void
3939

4040
$config = $this->processConfiguration($configuration, $configs);
4141

42-
if (isset($config['predis'])) {
43-
$container->setAlias('brainbits_blocking.predis', $config['predis']);
42+
if (isset($config['storage']['predis'])) {
43+
$container->setAlias('brainbits_blocking.predis', $config['storage']['predis']);
44+
}
45+
46+
if (isset($config['clock'])) {
47+
$container->setAlias('brainbits_blocking.clock', $config['clock']);
4448
}
4549

4650
$container->setParameter('brainbits_blocking.interval', $config['block_interval']);
@@ -67,15 +71,15 @@ public function load(array $configs, ContainerBuilder $container): void
6771
}
6872

6973
if ($config['storage']['driver'] !== 'custom') {
70-
$xmlLoader->load(sprintf('storage/%s.xml', $config['storage']['driver']));
74+
$yamlLoader->load(sprintf('storage/%s.yaml', $config['storage']['driver']));
7175
} else {
72-
$container->setAlias('brainbits_blocking.storage', $config['storage']['service']);
76+
$container->setAlias(StorageInterface::class, $config['storage']['service']);
7377
}
7478

7579
if ($config['owner_factory']['driver'] !== 'custom') {
76-
$xmlLoader->load(sprintf('owner_factory/%s.xml', $config['owner_factory']['driver']));
80+
$yamlLoader->load(sprintf('owner_factory/%s.yaml', $config['owner_factory']['driver']));
7781
} else {
78-
$container->setAlias('brainbits_blocking.owner_factory', $config['owner_factory']['service']);
82+
$container->setAlias(OwnerFactoryInterface::class, $config['owner_factory']['service']);
7983
}
8084
}
8185
}

src/Bundle/DependencyInjection/Configuration.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,20 @@ public function getConfigTreeBuilder(): TreeBuilder
3838
return false;
3939
}
4040

41-
return ($v['predis'] ?? '') === '';
41+
return ($v['storage']['predis'] ?? '') === '';
4242
})
4343
->thenInvalid(
4444
'A predis alias has to be set for the predis storage driver.',
4545
)
4646
->end()
4747
->children()
4848
->integerNode('block_interval')->defaultValue(30)->end()
49-
->scalarNode('clock')->end()
50-
->scalarNode('predis')->end()
49+
->scalarNode('clock')
50+
->validate()
51+
->ifEmpty()
52+
->thenInvalid('Clock service is required.')
53+
->end()
54+
->end()
5155
->arrayNode('storage')
5256
->addDefaultsIfNotSet()
5357
->children()
@@ -64,6 +68,7 @@ public function getConfigTreeBuilder(): TreeBuilder
6468
->end()
6569
->scalarNode('service')->end()
6670
->scalarNode('storage_dir')->defaultValue('%kernel.cache_dir%/blocking/')->end()
71+
->scalarNode('predis')->end()
6772
->scalarNode('prefix')->defaultValue('block')->end()
6873
->end()
6974
->end()

src/Bundle/Resources/config/owner_factory/symfony_session.xml

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
services:
2+
Brainbits\Blocking\Owner\OwnerFactoryInterface:
3+
class: Brainbits\Blocking\Owner\SymfonySessionOwnerFactory
4+
arguments:
5+
- '@\Symfony\Component\HttpFoundation\RequestStack'

src/Bundle/Resources/config/owner_factory/symfony_token.xml

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
services:
2+
Brainbits\Blocking\Owner\OwnerFactoryInterface:
3+
class: Brainbits\Blocking\Owner\SymfonyTokenOwnerFactory
4+
arguments:
5+
- '@Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface'

src/Bundle/Resources/config/owner_factory/value.xml

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
services:
2+
Brainbits\Blocking\Owner\OwnerFactoryInterface:
3+
class: Brainbits\Blocking\Owner\ValueOwnerFactory
4+
arguments:
5+
- "%brainbits_blocking.owner_factory.value%"
Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
services:
2-
brainbits_blocking.filesystem_storage:
3-
class: Brainbits\Blocking\Storage\FilesystemStorage
2+
Brainbits\Blocking\Blocker:
43
arguments:
5-
- '%kernel.cache_dir%/blocks/'
6-
7-
brainbits_blocking.blocker:
8-
class: Brainbits\Blocking\Blocker
9-
arguments:
10-
- '@brainbits_blocking.storage'
11-
- '@brainbits_blocking.owner_factory'
4+
- '@Brainbits\Blocking\Storage\StorageInterface'
5+
- '@Brainbits\Blocking\Owner\OwnerFactoryInterface'
126

137

14-
brainbits_blocking.controller:
15-
class: Brainbits\Blocking\Bundle\Controller\BlockingController
8+
Brainbits\Blocking\Bundle\Controller\BlockingController:
169
tags: ['controller.service_arguments']
1710
arguments:
18-
- '@brainbits_blocking.blocker'
11+
- '@Brainbits\Blocking\Blocker'
1912

0 commit comments

Comments
 (0)