Skip to content

Commit

Permalink
TASK: Use ParameterBag
Browse files Browse the repository at this point in the history
  • Loading branch information
sabbelasichon committed Apr 17, 2024
1 parent a79ee01 commit 23e07fc
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":1,"defects":{"Fractor\\FractorRunner\\FractorRunnerTest::test":8},"times":{"Fractor\\FractorRunner\\FractorRunnerTest::test":0.011}}
{"version":1,"defects":{"Fractor\\FractorRunner\\FractorRunnerTest::test":8},"times":{"Fractor\\FractorRunner\\FractorRunnerTest::test":0.005}}
13 changes: 13 additions & 0 deletions fractor/config/application.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,16 @@
use a9f\Fractor\Fractor\FractorRunner;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
use function Symfony\Component\DependencyInjection\Loader\Configurator\tagged_iterator;

return static function (ContainerConfigurator $containerConfigurator, ContainerBuilder $containerBuilder): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(\a9f\Fractor\Configuration\Option::PATHS, []);
$parameters->set(\a9f\Fractor\Configuration\Option::FILE_EXTENSIONS, []);
$services = $containerConfigurator->services();
$services->defaults()
->autowire()
Expand All @@ -22,6 +29,12 @@
]
);

$services->set('parameter_bag', ContainerBag::class)
->args([
service('service_container'),
])
->alias(ContainerBagInterface::class, 'parameter_bag')
->alias(ParameterBagInterface::class, 'parameter_bag');

$services->set(FractorRunner::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
$services->set(FractorConfig::class)
Expand Down
4 changes: 2 additions & 2 deletions fractor/src/Command/ProcessCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#[AsCommand('process', 'Runs Fractor with the given configuration file')]
class ProcessCommand extends Command
{
public function __construct(private readonly FractorConfig $config, private readonly FractorRunner $runner, private readonly ConfigurationFactory $configurationFactory)
public function __construct(private readonly FractorRunner $runner, private readonly ConfigurationFactory $configurationFactory)
{
parent::__construct();
}
Expand All @@ -31,7 +31,7 @@ protected function configure(): void

protected function execute(InputInterface $input, OutputInterface $output): int
{
$this->runner->run($this->configurationFactory->createFromFractorConfig($this->config));
$this->runner->run($this->configurationFactory->create());

return Command::SUCCESS;
}
Expand Down
15 changes: 12 additions & 3 deletions fractor/src/Factory/ConfigurationFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,21 @@
namespace a9f\Fractor\Factory;

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\Configuration\Option;
use a9f\Fractor\ValueObject\Configuration;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;

final class ConfigurationFactory
final readonly class ConfigurationFactory
{
public function createFromFractorConfig(FractorConfig $fractorConfig): Configuration
public function __construct(private ContainerBagInterface $parameterBag)
{
return new Configuration($fractorConfig->getFileExtensions(), $fractorConfig->getPaths());
}

public function create(): Configuration
{
return new Configuration(
$this->parameterBag->get(Option::FILE_EXTENSIONS),
$this->parameterBag->get(Option::PATHS),
);
}
}
2 changes: 1 addition & 1 deletion fractor/src/Testing/PHPUnit/AbstractFractorTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ protected function bootFromConfigFile(): void

protected function doTest(): void
{
$this->fractorRunner->run($this->getService(ConfigurationFactory::class)->createFromFractorConfig($this->getService(FractorConfig::class)));
$this->fractorRunner->run($this->getService(ConfigurationFactory::class)->create());
}

/**
Expand Down

0 comments on commit 23e07fc

Please sign in to comment.