Skip to content

Commit 62b7f25

Browse files
Merge pull request #17 from andreaswolf/streamlining-and-refactoring
[TASK] Streamline folder and files naming
2 parents 3285e97 + e0d8e42 commit 62b7f25

36 files changed

+162
-94
lines changed

.phpstorm.meta.php

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
// see https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata
6+
namespace PHPSTORM_META;
7+
8+
override(\Psr\Container\ContainerInterface::get(0), type(0));

fractor-xml/src/XmlFileProcessor.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace a9f\FractorXml;
44

5-
use a9f\Fractor\Contract\FileProcessor;
6-
use a9f\Fractor\ValueObject\File;
5+
use a9f\Fractor\Application\Contract\FileProcessor;
6+
use a9f\Fractor\Application\ValueObject\File;
77
use a9f\FractorXml\Contract\XmlFractor;
88

99
final class XmlFileProcessor implements FileProcessor

fractor/config/application.php

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?php
22

3+
use a9f\Fractor\Application\Contract\FileProcessor;
4+
use a9f\Fractor\Application\FractorRunner;
5+
use a9f\Fractor\Configuration\AllowedFileExtensionsResolver;
6+
use a9f\Fractor\Configuration\ConfigurationFactory;
37
use a9f\Fractor\Configuration\Option;
4-
use a9f\Fractor\Contract\FileProcessor;
5-
use a9f\Fractor\Factory\ConfigurationFactory;
6-
use a9f\Fractor\Fractor\FractorRunner;
7-
use a9f\Fractor\ValueObject\Configuration;
8+
use a9f\Fractor\Configuration\ValueObject\Configuration;
89
use Symfony\Component\DependencyInjection\ContainerBuilder;
910
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
1011
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
@@ -25,10 +26,10 @@
2526
$services->load('a9f\\Fractor\\', __DIR__ . '/../src/')
2627
->exclude(
2728
[
28-
__DIR__ . '/../src/Configuration',
29-
__DIR__ . '/../src/Console',
30-
__DIR__ . '/../src/ValueObject',
29+
__DIR__ . '/../src/Console/Output',
3130
__DIR__ . '/../src/Testing',
31+
__DIR__ . '/../src/ValueObject',
32+
__DIR__ . '/../src/**/ValueObject',
3233
]
3334
);
3435

@@ -41,7 +42,7 @@
4142

4243
$services->set(Configuration::class)->factory([service(ConfigurationFactory::class), 'create']);
4344
$services->set(FractorRunner::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
44-
$services->set(ConfigurationFactory::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
45+
$services->set(AllowedFileExtensionsResolver::class)->arg('$processors', tagged_iterator('fractor.file_processor'));
4546

4647
$containerBuilder->registerForAutoconfiguration(FileProcessor::class)->addTag('fractor.file_processor');
4748
};

fractor/src/Contract/FilePrinter.php fractor/src/Application/Contract/FilePrinter.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\Contract;
5+
namespace a9f\Fractor\Application\Contract;
66

7-
use a9f\Fractor\ValueObject\File;
7+
use a9f\Fractor\Application\ValueObject\File;
88

99
interface FilePrinter
1010
{

fractor/src/Contract/FileProcessor.php fractor/src/Application/Contract/FileProcessor.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

3-
namespace a9f\Fractor\Contract;
3+
namespace a9f\Fractor\Application\Contract;
44

5-
use a9f\Fractor\ValueObject\File;
5+
use a9f\Fractor\Application\ValueObject\File;
66

77
interface FileProcessor
88
{

fractor/src/FileSystem/FileCollector.php fractor/src/Application/FilesCollector.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\FileSystem;
5+
namespace a9f\Fractor\Application;
66

7-
use a9f\Fractor\ValueObject\File;
7+
use a9f\Fractor\Application\ValueObject\File;
88

9-
final class FileCollector
9+
final class FilesCollector
1010
{
1111
/**
1212
* @var array<string, File>

fractor/src/Fractor/FractorRunner.php fractor/src/Application/FractorRunner.php

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
<?php
22

3-
namespace a9f\Fractor\Fractor;
4-
5-
use a9f\Fractor\Contract\FilePrinter;
6-
use a9f\Fractor\Contract\FileProcessor;
7-
use a9f\Fractor\Contract\Output;
8-
use a9f\Fractor\FileSystem\FileCollector;
9-
use a9f\Fractor\FileSystem\FileFinder;
10-
use a9f\Fractor\ValueObject\Configuration;
11-
use a9f\Fractor\ValueObject\File;
3+
namespace a9f\Fractor\Application;
4+
5+
use a9f\Fractor\Application\Contract\FilePrinter;
6+
use a9f\Fractor\Application\Contract\FileProcessor;
7+
use a9f\Fractor\Application\ValueObject\File;
8+
use a9f\Fractor\Configuration\ValueObject\Configuration;
9+
use a9f\Fractor\Console\Contract\Output;
10+
use a9f\Fractor\FileSystem\FilesFinder;
1211
use Nette\Utils\FileSystem;
1312

1413
/**
@@ -18,9 +17,9 @@
1817
final readonly class FractorRunner
1918
{
2019
/**
21-
* @param list<FileProcessor> $processors
20+
* @param FileProcessor[] $processors
2221
*/
23-
public function __construct(private FileFinder $fileFinder, private FileCollector $fileCollector, private iterable $processors, private Configuration $configuration, private FilePrinter $filePrinter)
22+
public function __construct(private FilesFinder $fileFinder, private FilesCollector $fileCollector, private iterable $processors, private Configuration $configuration, private FilePrinter $filePrinter)
2423
{
2524
}
2625

fractor/src/FileSystem/LocalFileSystemPrinter.php fractor/src/Application/LocalFileSystemPrinter.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\FileSystem;
5+
namespace a9f\Fractor\Application;
66

7-
use a9f\Fractor\Contract\FilePrinter;
8-
use a9f\Fractor\ValueObject\File;
7+
use a9f\Fractor\Application\Contract\FilePrinter;
8+
use a9f\Fractor\Application\ValueObject\File;
99
use Nette\Utils\FileSystem;
1010

1111
final class LocalFileSystemPrinter implements FilePrinter

fractor/src/ValueObject/File.php fractor/src/Application/ValueObject/File.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\ValueObject;
5+
namespace a9f\Fractor\Application\ValueObject;
66

77
final class File
88
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace a9f\Fractor\Configuration;
6+
7+
use a9f\Fractor\Application\Contract\FileProcessor;
8+
9+
final readonly class AllowedFileExtensionsResolver
10+
{
11+
/**
12+
* @param FileProcessor[] $processors
13+
*/
14+
public function __construct(private iterable $processors)
15+
{
16+
}
17+
18+
/**
19+
* @return list<non-empty-string>
20+
*/
21+
public function resolve(): array
22+
{
23+
$fileExtensions = [];
24+
foreach ($this->processors as $processor) {
25+
$fileExtensions = array_merge($processor->allowedFileExtensions(), $fileExtensions);
26+
}
27+
28+
return array_unique($fileExtensions);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace a9f\Fractor\Configuration;
6+
7+
use a9f\Fractor\Configuration\ValueObject\Configuration;
8+
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
9+
10+
final readonly class ConfigurationFactory
11+
{
12+
public function __construct(private ContainerBagInterface $parameterBag, private AllowedFileExtensionsResolver $allowedFileExtensionsResolver)
13+
{
14+
}
15+
16+
public function create(): Configuration
17+
{
18+
return new Configuration(
19+
$this->allowedFileExtensionsResolver->resolve(),
20+
$this->parameterBag->get(Option::PATHS),
21+
);
22+
}
23+
}

fractor/src/ValueObject/Configuration.php fractor/src/Configuration/ValueObject/Configuration.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\ValueObject;
5+
namespace a9f\Fractor\Configuration\ValueObject;
66

77
use Webmozart\Assert\Assert;
88

fractor/src/Command/ProcessCommand.php fractor/src/Console/Command/ProcessCommand.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
<?php
22

3-
namespace a9f\Fractor\Command;
3+
namespace a9f\Fractor\Console\Command;
44

5-
use a9f\Fractor\Console\SymfonyConsoleOutput;
6-
use a9f\Fractor\Fractor\FractorRunner;
5+
use a9f\Fractor\Application\FractorRunner;
6+
use a9f\Fractor\Console\Output\SymfonyConsoleOutput;
77
use Symfony\Component\Console\Attribute\AsCommand;
88
use Symfony\Component\Console\Command\Command;
99
use Symfony\Component\Console\Input\InputInterface;
1010
use Symfony\Component\Console\Input\InputOption;
1111
use Symfony\Component\Console\Output\OutputInterface;
1212

1313
#[AsCommand('process', 'Runs Fractor with the given configuration file')]
14-
class ProcessCommand extends Command
14+
final class ProcessCommand extends Command
1515
{
1616
public function __construct(private readonly FractorRunner $runner)
1717
{

fractor/src/Contract/Output.php fractor/src/Console/Contract/Output.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\Contract;
5+
namespace a9f\Fractor\Console\Contract;
66

77
interface Output
88
{

fractor/src/Console/NullOutput.php fractor/src/Console/Output/NullOutput.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\Console;
5+
namespace a9f\Fractor\Console\Output;
66

7-
use a9f\Fractor\Contract\Output;
7+
use a9f\Fractor\Console\Contract\Output;
88

99
final class NullOutput implements Output
1010
{

fractor/src/Console/SymfonyConsoleOutput.php fractor/src/Console/Output/SymfonyConsoleOutput.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
declare(strict_types=1);
44

5-
namespace a9f\Fractor\Console;
5+
namespace a9f\Fractor\Console\Output;
66

7-
use a9f\Fractor\Contract\Output;
7+
use a9f\Fractor\Console\Contract\Output;
88
use Symfony\Component\Console\Exception\RuntimeException;
99
use Symfony\Component\Console\Helper\ProgressBar;
1010
use Symfony\Component\Console\Output\OutputInterface;

fractor/src/Factory/ConfigurationFactory.php

-33
This file was deleted.

fractor/src/FileSystem/FileFinder.php fractor/src/FileSystem/FilesFinder.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Symfony\Component\Finder\Finder;
66

7-
final class FileFinder
7+
final class FilesFinder
88
{
99
/**
1010
* @param list<non-empty-string> $directories

fractor/src/Testing/PHPUnit/AbstractFractorTestCase.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
namespace a9f\Fractor\Testing\PHPUnit;
66

7-
use a9f\Fractor\Console\NullOutput;
7+
use a9f\Fractor\Application\FilesCollector;
8+
use a9f\Fractor\Application\FractorRunner;
9+
use a9f\Fractor\Console\Output\NullOutput;
810
use a9f\Fractor\DependencyInjection\ContainerContainerBuilder;
911
use a9f\Fractor\Exception\ShouldNotHappenException;
10-
use a9f\Fractor\FileSystem\FileCollector;
11-
use a9f\Fractor\Fractor\FractorRunner;
1212
use PHPUnit\Framework\TestCase;
1313
use Psr\Container\ContainerInterface;
1414

1515
abstract class AbstractFractorTestCase extends TestCase
1616
{
1717
private ?ContainerInterface $currentContainer = null;
1818
private FractorRunner $fractorRunner;
19-
protected FileCollector $fileCollector;
19+
protected FilesCollector $fileCollector;
2020

2121
/**
2222
* @return array<int, string>
@@ -29,7 +29,7 @@ protected function additionalConfigurationFiles(): array
2929
protected function setUp(): void
3030
{
3131
$this->bootFromConfigFile();
32-
$this->fileCollector = $this->getService(FileCollector::class);
32+
$this->fileCollector = $this->getService(FilesCollector::class);
3333
$this->fractorRunner = $this->getService(FractorRunner::class);
3434
}
3535

fractor/tests/Fractor/FractorRunner/FractorRunnerTest.php fractor/tests/Application/FractorRunner/FractorRunnerTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Fractor\FractorRunner;
5+
namespace a9f\Fractor\Tests\Application\FractorRunner;
66

77
use a9f\Fractor\Testing\PHPUnit\AbstractFractorTestCase;
88

@@ -16,7 +16,7 @@ public function test(): void
1616
protected function additionalConfigurationFiles(): array
1717
{
1818
return [
19-
__DIR__ . '/config/application.php'
19+
__DIR__ . '/config/config.php'
2020
];
2121
}
2222
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace a9f\Fractor\Tests\Configuration\AllowedFileExtensionsResolver;
6+
7+
use a9f\Fractor\Configuration\AllowedFileExtensionsResolver;
8+
use a9f\Fractor\Testing\PHPUnit\AbstractFractorTestCase;
9+
10+
final class AllowedFileExtensionsResolverTest extends AbstractFractorTestCase
11+
{
12+
public function test(): void
13+
{
14+
// Arrange
15+
$allowedFileExtensionsResolver = $this->getService(AllowedFileExtensionsResolver::class);
16+
17+
// Act & Assert
18+
self::assertSame(['txt'], $allowedFileExtensionsResolver->resolve());
19+
}
20+
protected function additionalConfigurationFiles(): array
21+
{
22+
return [
23+
__DIR__ . '/config/config.php'
24+
];
25+
}
26+
}

0 commit comments

Comments
 (0)