Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: ci build

on:
push:
branches: [main]
pull_request:
branches: [main]
pull_request:
push:
branches:
- "main"

jobs:
build:
Expand Down
12 changes: 6 additions & 6 deletions src/Analyser/Analyser.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace Boundwize\StructArmed\Analyser;

use Boundwize\StructArmed\Analyser\ClassNodeExtractor;
use Boundwize\StructArmed\Analyser\Parallel\ParallelClassNodeExtractor;
use Boundwize\StructArmed\Analyser\AnalysisNodeExtractor;
use Boundwize\StructArmed\Analyser\Parallel\ParallelAnalysisNodeExtractor;
use Boundwize\StructArmed\Architecture;
use Boundwize\StructArmed\Cache\AnalysisResultCache;
use Boundwize\StructArmed\Composer\Psr4PathResolver;
Expand Down Expand Up @@ -144,7 +144,7 @@ public function analyse(

$files ??= $this->filesForAnalysis($architecture, $scanPaths, $layers);
$withFileAnalysis = $fileAnalysisRules !== [];
$extractionResult = $this->collectClassNodes(
$extractionResult = $this->collectAnalysisNodes(
$files,
$progressHandler,
$layers,
Expand Down Expand Up @@ -1128,7 +1128,7 @@ private function recursiveParents(
* excludePattern: string|list<string|null>|null
* }> $layerPatterns
*/
private function collectClassNodes(
private function collectAnalysisNodes(
array $files,
?ProgressHandlerInterface $progressHandler,
array $layers,
Expand Down Expand Up @@ -1221,15 +1221,15 @@ private function collectClassNodes(
$options = $analyserOptions ?? AnalyserOptions::parallel();

if ($options->isParallel()) {
$parsedResult = (new ParallelClassNodeExtractor(
$parsedResult = (new ParallelAnalysisNodeExtractor(
$this->basePath,
$layers,
$layerPatterns,
$options->workerCount,
$this->analysisResultCache?->getCacheDirectory(),
))->extract($filesToParse, $progressHandler, $withFileAnalysis);
} else {
$parsedResult = (new ClassNodeExtractor($chainLayerResolver))->extract(
$parsedResult = (new AnalysisNodeExtractor($chainLayerResolver))->extract(
$filesToParse,
$progressHandler,
$withFileAnalysis,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitor\NameResolver;

final readonly class ClassNodeExtractor
/**
* @internal
*/
final readonly class AnalysisNodeExtractor
{
private FileAnalysisProvider $fileAnalysisProvider;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Boundwize\StructArmed\Analyser\Parallel;

use Boundwize\StructArmed\Analyser\ClassNodeExtractor;
use Boundwize\StructArmed\Analyser\AnalysisNodeExtractor;
use Boundwize\StructArmed\LayerResolver\ChainLayerResolver;
use Throwable;

Expand All @@ -17,7 +17,10 @@

use const STDOUT;

final readonly class ClassNodeWorker
/**
* @internal
*/
final readonly class AnalysisNodeWorker
{
/** @param resource|null $outputStream */
public static function run(string $inputFile, string $outputFile, mixed $outputStream = null): int
Expand Down Expand Up @@ -53,7 +56,7 @@ public static function run(string $inputFile, string $outputFile, mixed $outputS

$progressHandler = $emitProgress ? new WorkerProgressHandler($stream) : null;

$result = (new ClassNodeExtractor($layerResolver))->extract(
$result = (new AnalysisNodeExtractor($layerResolver))->extract(
$files,
$progressHandler,
$withFileAnalysis,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@

use const PHP_BINARY;

final readonly class ParallelClassNodeExtractor
/**
* @internal
*/
final readonly class ParallelAnalysisNodeExtractor
{
/**
* @param array<string, string|list<string>> $layers
Expand Down
4 changes: 2 additions & 2 deletions src/Cli/StructArmedApplication.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Boundwize\StructArmed\Cli;

use Boundwize\StructArmed\Analyser\Parallel\ClassNodeWorker;
use Boundwize\StructArmed\Analyser\Parallel\AnalysisNodeWorker;
use Boundwize\StructArmed\Version;

use function array_slice;
Expand All @@ -23,7 +23,7 @@ public function run(array $argv, ?string $basePath = null): int
$command = $argv[1] ?? null;

if ($command === '--internal-worker') {
return ClassNodeWorker::run($argv[2] ?? '', $argv[3] ?? '');
return AnalysisNodeWorker::run($argv[2] ?? '', $argv[3] ?? '');
}

if (in_array($command, ['--version', '-V'], true)) {
Expand Down
2 changes: 1 addition & 1 deletion structarmed.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
__DIR__ . '/src/Preset/Preset.php',
],
Psr1Preset::FILES_SHOULD_DECLARE_SYMBOLS_OR_SIDE_EFFECTS => [
__DIR__ . '/tests/Analyser/Parallel/ParallelClassNodeExtractorTest.php',
__DIR__ . '/tests/Analyser/Parallel/ParallelAnalysisNodeExtractorTest.php',
__DIR__ . '/tests/Analyser/Parallel/MockFunctions.php',
],
])
Expand Down
4 changes: 2 additions & 2 deletions tests/Analyser/AnalyserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Boundwize\StructArmed\Analyser\Analyser;
use Boundwize\StructArmed\Analyser\AnalyserOptions;
use Boundwize\StructArmed\Analyser\FileAnalysisProvider;
use Boundwize\StructArmed\Analyser\Parallel\ParallelClassNodeExtractor;
use Boundwize\StructArmed\Analyser\Parallel\ParallelAnalysisNodeExtractor;
use Boundwize\StructArmed\Architecture;
use Boundwize\StructArmed\Cache\AnalysisResultCache;
use Boundwize\StructArmed\Cache\FileHashProvider;
Expand Down Expand Up @@ -54,7 +54,7 @@
use const DIRECTORY_SEPARATOR;

#[CoversClass(Analyser::class)]
#[CoversClass(ParallelClassNodeExtractor::class)]
#[CoversClass(ParallelAnalysisNodeExtractor::class)]
#[CoversClass(PhpFileCollector::class)]
#[CoversClass(SkipPathMatcher::class)]
final class AnalyserTest extends TestCase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace Boundwize\StructArmed\Tests\Analyser;

use Boundwize\StructArmed\Analyser\AnalysisNodeExtractor;
use Boundwize\StructArmed\Analyser\ClassNode;
use Boundwize\StructArmed\Analyser\ClassNodeExtractor;
use Boundwize\StructArmed\Analyser\ExtractionResult;
use Boundwize\StructArmed\LayerResolver\Resolvers\NamespaceLayerResolver;
use Boundwize\StructArmed\Progress\ProgressHandlerInterface;
Expand All @@ -15,18 +15,18 @@

use function file_put_contents;

#[CoversClass(ClassNodeExtractor::class)]
#[CoversClass(AnalysisNodeExtractor::class)]
#[CoversClass(ExtractionResult::class)]
final class ClassNodeExtractorTest extends TestCase
final class AnalysisNodeExtractorTest extends TestCase
{
use TemporaryDirectoryCleanupTrait;

public function testExtractReturnsEmptyArrayForNoFiles(): void
{
$namespaceLayerResolver = new NamespaceLayerResolver(['Domain' => 'App\\Domain'], '/tmp');
$classNodeExtractor = new ClassNodeExtractor($namespaceLayerResolver);
$analysisNodeExtractor = new AnalysisNodeExtractor($namespaceLayerResolver);

$extractionResult = $classNodeExtractor->extract([]);
$extractionResult = $analysisNodeExtractor->extract([]);

$this->assertSame([], $extractionResult->classNodes);
$this->assertSame([], $extractionResult->fileAnalyses);
Expand All @@ -48,9 +48,9 @@ final class Foo
PHP);

$namespaceLayerResolver = new NamespaceLayerResolver(['Domain' => 'App\\Domain'], $dir);
$classNodeExtractor = new ClassNodeExtractor($namespaceLayerResolver);
$analysisNodeExtractor = new AnalysisNodeExtractor($namespaceLayerResolver);

$extractionResult = $classNodeExtractor->extract([$file]);
$extractionResult = $analysisNodeExtractor->extract([$file]);

$this->assertCount(1, $extractionResult->classNodes);
$this->assertInstanceOf(ClassNode::class, $extractionResult->classNodes[0]);
Expand All @@ -65,9 +65,9 @@ public function testExtractSkipsFilesWithParseErrors(): void
file_put_contents($file, '<?php this is not valid php !!!!!');

$namespaceLayerResolver = new NamespaceLayerResolver(['Domain' => 'App\\Domain'], $dir);
$classNodeExtractor = new ClassNodeExtractor($namespaceLayerResolver);
$analysisNodeExtractor = new AnalysisNodeExtractor($namespaceLayerResolver);

$extractionResult = $classNodeExtractor->extract([$file]);
$extractionResult = $analysisNodeExtractor->extract([$file]);

$this->assertSame([], $extractionResult->classNodes);
}
Expand All @@ -80,9 +80,9 @@ public function testExtractSkipsFilesWithEmptyAst(): void
file_put_contents($file, '<?php');

$namespaceLayerResolver = new NamespaceLayerResolver(['Domain' => 'App\\Domain'], $dir);
$classNodeExtractor = new ClassNodeExtractor($namespaceLayerResolver);
$analysisNodeExtractor = new AnalysisNodeExtractor($namespaceLayerResolver);

$extractionResult = $classNodeExtractor->extract([$file]);
$extractionResult = $analysisNodeExtractor->extract([$file]);

$this->assertSame([], $extractionResult->classNodes);
}
Expand All @@ -95,7 +95,7 @@ public function testExtractReturnsFactsFromTheSameParse(): void
file_put_contents($file, '<?php final class Foo {} echo "side effect";');

$namespaceLayerResolver = new NamespaceLayerResolver(['Source' => ''], $dir);
$extractionResult = (new ClassNodeExtractor($namespaceLayerResolver))
$extractionResult = (new AnalysisNodeExtractor($namespaceLayerResolver))
->extract([$file]);

$this->assertCount(1, $extractionResult->classNodes);
Expand All @@ -112,7 +112,7 @@ public function testExtractSkipsFileAnalysisWhenItIsNotRequested(): void
file_put_contents($file, '<?php final class Foo {}');

$namespaceLayerResolver = new NamespaceLayerResolver(['Source' => ''], $dir);
$extractionResult = (new ClassNodeExtractor($namespaceLayerResolver))
$extractionResult = (new AnalysisNodeExtractor($namespaceLayerResolver))
->extract([$file], withFileAnalysis: false);

$this->assertCount(1, $extractionResult->classNodes);
Expand All @@ -135,7 +135,7 @@ final class Bar
PHP);

$namespaceLayerResolver = new NamespaceLayerResolver(['Domain' => 'App\\Domain'], $dir);
$classNodeExtractor = new ClassNodeExtractor($namespaceLayerResolver);
$analysisNodeExtractor = new AnalysisNodeExtractor($namespaceLayerResolver);

$advanced = [];

Expand All @@ -161,7 +161,7 @@ public function finish(): void
}
};

$classNodeExtractor->extract([$file], $progressHandler);
$analysisNodeExtractor->extract([$file], $progressHandler);

$this->assertCount(1, $advanced);
$this->assertSame($file, $advanced[0]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Boundwize\StructArmed\Tests\Analyser\Parallel;

use Boundwize\StructArmed\Analyser\Parallel\ClassNodeWorker;
use Boundwize\StructArmed\Analyser\Parallel\AnalysisNodeWorker;
use Boundwize\StructArmed\Analyser\Parallel\WorkerFailedException;
use Boundwize\StructArmed\Analyser\Parallel\WorkerProgressHandler;
use Boundwize\StructArmed\Tests\Support\TemporaryDirectoryCleanupTrait;
Expand All @@ -18,10 +18,10 @@
use function serialize;
use function unserialize;

#[CoversClass(ClassNodeWorker::class)]
#[CoversClass(AnalysisNodeWorker::class)]
#[CoversClass(WorkerProgressHandler::class)]
#[CoversClass(WorkerFailedException::class)]
final class ClassNodeWorkerTest extends TestCase
final class AnalysisNodeWorkerTest extends TestCase
{
use TemporaryDirectoryCleanupTrait;

Expand Down Expand Up @@ -50,7 +50,7 @@ final class Foo
'files' => [$srcFile],
]));

$exitCode = ClassNodeWorker::run($inputFile, $outputFile, $this->silentStream());
$exitCode = AnalysisNodeWorker::run($inputFile, $outputFile, $this->silentStream());

$this->assertSame(0, $exitCode);

Expand All @@ -70,7 +70,7 @@ public function testRunWithInvalidPayloadReturnsOneAndWritesError(): void

file_put_contents($inputFile, serialize('not-an-array'));

$exitCode = ClassNodeWorker::run($inputFile, $outputFile, $this->silentStream());
$exitCode = AnalysisNodeWorker::run($inputFile, $outputFile, $this->silentStream());

$this->assertSame(1, $exitCode);

Expand Down Expand Up @@ -114,7 +114,7 @@ final class FooService
'files' => [$srcFile],
]));

$exitCode = ClassNodeWorker::run($inputFile, $outputFile, $this->silentStream());
$exitCode = AnalysisNodeWorker::run($inputFile, $outputFile, $this->silentStream());

$this->assertSame(0, $exitCode);

Expand Down
Loading
Loading