Skip to content

Commit

Permalink
TASK: Refactor away from FractoConfig
Browse files Browse the repository at this point in the history
  • Loading branch information
sabbelasichon committed Apr 17, 2024
1 parent 23e07fc commit 19e35a6
Show file tree
Hide file tree
Showing 20 changed files with 31 additions and 197 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.phpunit.result.cache
1 change: 0 additions & 1 deletion .phpunit.result.cache

This file was deleted.

4 changes: 2 additions & 2 deletions fractor/bin/fractor.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php

use a9f\Fractor\Configuration\ConfigResolver;
use a9f\Fractor\DependencyInjection\ContainerBuilder;
use a9f\Fractor\DependencyInjection\ContainerContainerBuilder;
use a9f\Fractor\FractorApplication;
use Symfony\Component\Console\Input\ArgvInput;

Expand All @@ -26,7 +26,7 @@

$configFile = ConfigResolver::resolveConfigsFromInput(new ArgvInput());

$container = (new ContainerBuilder())->createDependencyInjectionContainer($configFile);
$container = (new ContainerContainerBuilder())->createDependencyInjectionContainer([$configFile]);

/** @var FractorApplication $application */
$application = $container->get(FractorApplication::class);
Expand Down
8 changes: 3 additions & 5 deletions fractor/config/application.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\Configuration\Option;
use a9f\Fractor\Contract\FileProcessor;
use a9f\Fractor\Fractor\FractorRunner;
use Symfony\Component\DependencyInjection\ContainerBuilder;
Expand All @@ -13,8 +13,8 @@

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, []);
$parameters->set(Option::PATHS, []);
$parameters->set(Option::FILE_EXTENSIONS, []);
$services = $containerConfigurator->services();
$services->defaults()
->autowire()
Expand All @@ -37,8 +37,6 @@
->alias(ParameterBagInterface::class, 'parameter_bag');

$services->set(FractorRunner::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
$services->set(FractorConfig::class)
->lazy();

$containerBuilder->registerForAutoconfiguration(FileProcessor::class)->addTag('fractor.file_processor');
};
1 change: 0 additions & 1 deletion fractor/src/Command/ProcessCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace a9f\Fractor\Command;

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\Factory\ConfigurationFactory;
use a9f\Fractor\Fractor\FractorRunner;
use Symfony\Component\Console\Attribute\AsCommand;
Expand Down
68 changes: 0 additions & 68 deletions fractor/src/Configuration/FractorConfig.php

This file was deleted.

3 changes: 2 additions & 1 deletion fractor/src/Configuration/Option.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?php

declare(strict_types=1);

namespace a9f\Fractor\Configuration;
Expand All @@ -8,4 +9,4 @@ final class Option
public const PATHS = 'paths';

public const FILE_EXTENSIONS = 'file_extensions';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,26 @@

namespace a9f\Fractor\DependencyInjection;

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\DependencyInjection\CompilerPass\CommandsCompilerPass;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;

class ContainerBuilder
class ContainerContainerBuilder
{
/**
* @param array<int, string> $additionalConfigFiles
*/
public function createDependencyInjectionContainer(?string $fractorConfigFile, array $additionalConfigFiles = []): ContainerInterface
public function createDependencyInjectionContainer(array $additionalConfigFiles = []): ContainerInterface
{
$config = new FractorConfig();

$definition = new Definition(FractorConfig::class);
$definition->setPublic(true);
$config->set(Container::class, $config);
$config->set(FractorConfig::class, $config);

$config = new \Symfony\Component\DependencyInjection\ContainerBuilder();
$fileLoader = new PhpFileLoader($config, new FileLocator(__DIR__ . '/../../config/'));
$fileLoader->load('application.php');

$this->importExtensionConfigurations($config);

$config->addCompilerPass(new CommandsCompilerPass());

if ($fractorConfigFile !== null && is_file($fractorConfigFile)) {
$config->import($fractorConfigFile);
}

foreach ($additionalConfigFiles as $additionalConfigFile) {
$fileLoader = new PhpFileLoader($config, new FileLocator(dirname($additionalConfigFile)));
$fileLoader->load($additionalConfigFile);
Expand All @@ -45,7 +32,7 @@ public function createDependencyInjectionContainer(?string $fractorConfigFile, a
return $config;
}

private function importExtensionConfigurations(FractorConfig $config): void
private function importExtensionConfigurations(\Symfony\Component\DependencyInjection\ContainerBuilder $config): void
{
if (!class_exists('a9f\\FractorExtensionInstaller\\Generated\\InstalledPackages')) {
return;
Expand Down
4 changes: 2 additions & 2 deletions fractor/src/Factory/ConfigurationFactory.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

declare(strict_types=1);

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;
Expand All @@ -21,4 +21,4 @@ public function create(): Configuration
$this->parameterBag->get(Option::PATHS),
);
}
}
}
1 change: 0 additions & 1 deletion fractor/src/Fractor/FractorRunner.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace a9f\Fractor\Fractor;

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\Contract\FileProcessor;
use a9f\Fractor\FileSystem\FileCollector;
use a9f\Fractor\FileSystem\FileFinder;
Expand Down
7 changes: 2 additions & 5 deletions fractor/src/Testing/PHPUnit/AbstractFractorTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

namespace a9f\Fractor\Testing\PHPUnit;

use a9f\Fractor\Configuration\FractorConfig;
use a9f\Fractor\DependencyInjection\ContainerBuilder;
use a9f\Fractor\DependencyInjection\ContainerContainerBuilder;
use a9f\Fractor\Exception\ShouldNotHappenException;
use a9f\Fractor\Factory\ConfigurationFactory;
use a9f\Fractor\FileSystem\FileCollector;
Expand All @@ -19,8 +18,6 @@ abstract class AbstractFractorTestCase extends TestCase
private FractorRunner $fractorRunner;
protected FileCollector $fileCollector;

abstract protected function provideConfigFilePath(): ?string;

/**
* @return array<int, string>
*/
Expand All @@ -38,7 +35,7 @@ protected function setUp(): void

protected function bootFromConfigFile(): void
{
$this->currentContainer = (new ContainerBuilder())->createDependencyInjectionContainer($this->provideConfigFilePath(), $this->additionalConfigurationFiles());
$this->currentContainer = (new ContainerContainerBuilder())->createDependencyInjectionContainer($this->additionalConfigurationFiles());
}

protected function doTest(): void
Expand Down
3 changes: 2 additions & 1 deletion fractor/src/ValueObject/Configuration.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?php

declare(strict_types=1);

namespace a9f\Fractor\ValueObject;
Expand Down Expand Up @@ -28,4 +29,4 @@ public function getPaths(): array
{
return $this->paths;
}
}
}
62 changes: 0 additions & 62 deletions fractor/tests/Configuration/FractorConfigTest.php

This file was deleted.

5 changes: 0 additions & 5 deletions fractor/tests/FileSystem/FileFinderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,4 @@ public function findAllNonEmptyFilesInGivenDirectoriesWithGivenExtensions(): voi
{
self::assertCount(2, $this->subject->findFiles([__DIR__ . '/Fixture/DirectorToSearchIn'], ['txt', 'json']));
}

protected function provideConfigFilePath(): ?string
{
return null;
}
}
5 changes: 0 additions & 5 deletions fractor/tests/Fractor/FractorRunner/FractorRunnerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@

final class FractorRunnerTest extends AbstractFractorTestCase
{
protected function provideConfigFilePath(): ?string
{
return __DIR__ . '/config/fractor.php';
}

public function test(): void
{
$this->doTest();
Expand Down
3 changes: 3 additions & 0 deletions fractor/tests/Fractor/FractorRunner/config/application.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
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::FILE_EXTENSIONS, ['txt']);
$parameters->set(\a9f\Fractor\Configuration\Option::PATHS, [__DIR__ . '/../Fixture/']);
$services = $containerConfigurator->services();
$services->defaults()
->autowire()
Expand Down
8 changes: 0 additions & 8 deletions fractor/tests/Fractor/FractorRunner/config/fractor.php

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,12 @@ public function test(): void
self::assertStringEqualsFile(__DIR__ . '/Assertions/SelectWithoutRenderType.xml', $file->getContent());
}

protected function provideConfigFilePath(): ?string
{
return __DIR__ . '/config/fractor.php';
}

protected function additionalConfigurationFiles(): array
{
return [
__DIR__ . '/../../../../fractor-xml/config/application.php',
__DIR__ . '/../../../config/application.php',
__DIR__ . '/config/application.php',
];
}
}
9 changes: 9 additions & 0 deletions typo3-fractor/tests/Rules/FlexForm/config/application.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(\a9f\Fractor\Configuration\Option::FILE_EXTENSIONS, ['xml']);
$parameters->set(\a9f\Fractor\Configuration\Option::PATHS, [__DIR__ . '/../Fixture/']);
};
Loading

0 comments on commit 19e35a6

Please sign in to comment.