diff --git a/Makefile b/Makefile index b43979fc..20b01bf2 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ cs: vendor ## Fixes any found code style violation $(PHP_CS_FIXER_BIN) fix --allow-risky=yes phpstan: vendor ## Performs static code analysis using phpstan - $(PHPSTAN_BIN) analyse + $(PHPSTAN_BIN) analyse psalm: vendor ## Performs static code analysis using psalm $(PSALM_BIN) diff --git a/baseline.xml b/baseline.xml index 6d313797..27865015 100644 --- a/baseline.xml +++ b/baseline.xml @@ -28,13 +28,32 @@ ]]> - + - + + + + + + + + + + + astMap]]> + astMapExtractor->extract()]]> + + + + + + + + @@ -45,31 +64,57 @@ * }>]]> - + - + - - - - + + + + + + astMap]]> + astMapExtractor->extract()]]> + - - - - + + + + + + astMap]]> + astMapExtractor->extract()]]> + - + + + + + + astMap]]> + astMapExtractor->extract()]]> + + + - + + + + + + + astMap]]> + astMapExtractor->extract()]]> + + diff --git a/config/services.php b/config/services.php index fddefcea..8555ba6b 100644 --- a/config/services.php +++ b/config/services.php @@ -8,20 +8,16 @@ use Psr\EventDispatcher\EventDispatcherInterface; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Ast\AstFileReferenceCacheInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Contract\Ast\TypeResolverInterface; use Qossmic\Deptrac\Contract\Config\CollectorType; use Qossmic\Deptrac\Contract\Config\EmitterType; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; +use Qossmic\Deptrac\Contract\Layer\LayerProviderInterface; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Contract\OutputFormatter\BaselineMapperInterface; use Qossmic\Deptrac\Core\Analyser\DependencyLayersAnalyser; -use Qossmic\Deptrac\Core\Analyser\EventHandler\AllowDependencyHandler; -use Qossmic\Deptrac\Core\Analyser\EventHandler\DependsOnDisallowedLayer; -use Qossmic\Deptrac\Core\Analyser\EventHandler\DependsOnInternalToken; -use Qossmic\Deptrac\Core\Analyser\EventHandler\DependsOnPrivateLayer; -use Qossmic\Deptrac\Core\Analyser\EventHandler\MatchingLayersHandler; -use Qossmic\Deptrac\Core\Analyser\EventHandler\UncoveredDependentHandler; -use Qossmic\Deptrac\Core\Analyser\EventHandler\UnmatchedSkippedViolations; use Qossmic\Deptrac\Core\Analyser\LayerDependenciesAnalyser; use Qossmic\Deptrac\Core\Analyser\LayerForTokenAnalyser; use Qossmic\Deptrac\Core\Analyser\RulesetUsageAnalyser; @@ -30,64 +26,83 @@ use Qossmic\Deptrac\Core\Ast\AstLoader; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\AnonymousClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\CatchExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassConstantExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassMethodExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\FunctionCallExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\FunctionLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\GroupUseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\InstanceofExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\InterfaceExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\NewExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\PropertyExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\StaticCallExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\StaticPropertyFetchExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\TraitUseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\UseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\VariableExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; use Qossmic\Deptrac\Core\Dependency\DependencyResolver; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassSuperglobalDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FileDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionCallDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionSuperglobalDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\UsesDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\InheritanceFlattener; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\InputCollector\FileInputCollector; use Qossmic\Deptrac\Core\InputCollector\InputCollectorInterface; -use Qossmic\Deptrac\Core\Layer\Collector\AttributeCollector; -use Qossmic\Deptrac\Core\Layer\Collector\BoolCollector; -use Qossmic\Deptrac\Core\Layer\Collector\ClassCollector; -use Qossmic\Deptrac\Core\Layer\Collector\ClassLikeCollector; -use Qossmic\Deptrac\Core\Layer\Collector\ClassNameRegexCollector; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorProvider; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorResolver; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorResolverInterface; -use Qossmic\Deptrac\Core\Layer\Collector\ComposerCollector; -use Qossmic\Deptrac\Core\Layer\Collector\DirectoryCollector; -use Qossmic\Deptrac\Core\Layer\Collector\ExtendsCollector; -use Qossmic\Deptrac\Core\Layer\Collector\FunctionNameCollector; -use Qossmic\Deptrac\Core\Layer\Collector\GlobCollector; -use Qossmic\Deptrac\Core\Layer\Collector\ImplementsCollector; -use Qossmic\Deptrac\Core\Layer\Collector\InheritanceLevelCollector; -use Qossmic\Deptrac\Core\Layer\Collector\InheritsCollector; -use Qossmic\Deptrac\Core\Layer\Collector\InterfaceCollector; -use Qossmic\Deptrac\Core\Layer\Collector\LayerCollector; -use Qossmic\Deptrac\Core\Layer\Collector\MethodCollector; -use Qossmic\Deptrac\Core\Layer\Collector\PhpInternalCollector; -use Qossmic\Deptrac\Core\Layer\Collector\SuperglobalCollector; -use Qossmic\Deptrac\Core\Layer\Collector\TagValueRegexCollector; -use Qossmic\Deptrac\Core\Layer\Collector\TraitCollector; -use Qossmic\Deptrac\Core\Layer\Collector\UsesCollector; +use Qossmic\Deptrac\Core\Layer\CollectorProvider; +use Qossmic\Deptrac\Core\Layer\CollectorResolver; +use Qossmic\Deptrac\Core\Layer\LayerProvider; use Qossmic\Deptrac\Core\Layer\LayerResolver; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; +use Qossmic\Deptrac\DefaultBehavior\Analyser\AllowDependencyHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\DependsOnDisallowedLayer; +use Qossmic\Deptrac\DefaultBehavior\Analyser\DependsOnInternalToken; +use Qossmic\Deptrac\DefaultBehavior\Analyser\DependsOnPrivateLayer; +use Qossmic\Deptrac\DefaultBehavior\Analyser\MatchingLayersHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\UncoveredDependentHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\UnmatchedSkippedViolations; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\AnonymousClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\CatchExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassConstantExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassMethodExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\FunctionCallExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\FunctionLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\GroupUseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\InstanceofExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\InterfaceExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\NewExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\PropertyExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\StaticCallExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\StaticPropertyFetchExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\TraitUseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\UseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\VariableExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FileDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionCallDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\UsesDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Layer\AttributeCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\BoolCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassLikeCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassNameRegexCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ComposerCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\DirectoryCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ExtendsCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\FunctionNameCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\GlobCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ImplementsCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\InheritanceLevelCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\InheritsCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\InterfaceCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\LayerCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\MethodCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\PhpInternalCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\SuperglobalCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\TagValueRegexCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\TraitCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\UsesCollector; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\BaselineOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\CodeclimateOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\ConsoleOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GithubActionsOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GraphVizOutputDisplayFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GraphVizOutputDotFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GraphVizOutputHtmlFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GraphVizOutputImageFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\JsonOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\JUnitOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\MermaidJSOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\TableOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\XMLOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Command\AnalyseCommand; use Qossmic\Deptrac\Supportive\Console\Command\AnalyseRunner; use Qossmic\Deptrac\Supportive\Console\Command\ChangedFilesCommand; @@ -105,21 +120,7 @@ use Qossmic\Deptrac\Supportive\Console\Command\InitCommand; use Qossmic\Deptrac\Supportive\File\Dumper; use Qossmic\Deptrac\Supportive\File\YmlFileLoader; -use Qossmic\Deptrac\Supportive\OutputFormatter\BaselineOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\CodeclimateOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; -use Qossmic\Deptrac\Supportive\OutputFormatter\ConsoleOutputFormatter; use Qossmic\Deptrac\Supportive\OutputFormatter\FormatterProvider; -use Qossmic\Deptrac\Supportive\OutputFormatter\GithubActionsOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\GraphVizOutputDisplayFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\GraphVizOutputDotFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\GraphVizOutputHtmlFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\GraphVizOutputImageFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\JsonOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\JUnitOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\MermaidJSOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\TableOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\XMLOutputFormatter; use Qossmic\Deptrac\Supportive\OutputFormatter\YamlBaselineMapper; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symfony\Component\EventDispatcher\EventDispatcher; @@ -269,7 +270,6 @@ ]) ; $services->set(TokenResolver::class); - $services->set(InheritanceFlattener::class); $services ->set(ClassDependencyEmitter::class) ->tag('dependency_emitter', ['key' => EmitterType::CLASS_TOKEN->value]) @@ -409,6 +409,7 @@ * Analyser */ $services->set(AstMapExtractor::class); + $services->alias(AstMapExtractorInterface::class, AstMapExtractor::class); $services ->set(UncoveredDependentHandler::class) ->args([ @@ -426,6 +427,7 @@ '$allowedLayers' => param('ruleset'), ]) ; + $services->alias(LayerProviderInterface::class, LayerProvider::class); $services ->set(AllowDependencyHandler::class) ->tag('kernel.event_subscriber') diff --git a/deptrac.baseline.yaml b/deptrac.baseline.yaml new file mode 100644 index 00000000..e7e628ea --- /dev/null +++ b/deptrac.baseline.yaml @@ -0,0 +1,5 @@ +deptrac: + skip_violations: + Qossmic\Deptrac\Supportive\Console\Command\AnalyseCommand: + - Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GithubActionsOutputFormatter + - Qossmic\Deptrac\DefaultBehavior\OutputFormatter\TableOutputFormatter diff --git a/deptrac.config.php b/deptrac.config.php index 88f852e0..25944c9e 100755 --- a/deptrac.config.php +++ b/deptrac.config.php @@ -21,9 +21,10 @@ $config ->paths('src') ->cacheFile('.cache/deptrac.cache') + ->baseline('deptrac.baseline.yaml') ->analyser( AnalyserConfig::create() - ->internalTag( '@internal' ) + ->internalTag('@internal') ->types( EmitterType::CLASS_TOKEN, EmitterType::CLASS_SUPERGLOBAL_TOKEN, @@ -34,6 +35,9 @@ ) ) ->layers( + $defaultBehavior = Layer::withName('DefaultBehavior')->collectors( + DirectoryConfig::create('src/DefaultBehavior/.*') + ), $analyser = Layer::withName('Analyser')->collectors( DirectoryConfig::create('src/Core/Analyser/.*') ), @@ -66,8 +70,6 @@ ), $outputFormatter = Layer::withName('OutputFormatter')->collectors( DirectoryConfig::create('src/Supportive/OutputFormatter/.*'), - ComposerConfig::create('composer.json', 'composer.lock') - ->addPackage('phpdocumentor/graphviz')->private(), ), $file = Layer::withName('File')->collectors( DirectoryConfig::create('src/Supportive/File/.*') @@ -90,6 +92,10 @@ ->addPackage('symfony/finder') ->addPackage('symfony/yaml'), ), + $graphviz = Layer::withName('Graphviz')->collectors( + ComposerConfig::create('composer.json', 'composer.lock') + ->addPackage('phpdocumentor/graphviz'), + ) ) ->rulesets( Ruleset::forLayer($layer)->accesses($ast, $symfony), @@ -103,6 +109,7 @@ Ruleset::forLayer($contract)->accesses($symfony), Ruleset::forLayer($file)->accesses($symfony), Ruleset::forLayer($dependencyInjection)->accesses($symfony), + Ruleset::forLayer($defaultBehavior)->accesses($symfony, $graphviz), ) ->formatters( GraphvizConfig::create() diff --git a/deptrac.yaml b/deptrac.yaml index 38978cc4..62fdb8bd 100644 --- a/deptrac.yaml +++ b/deptrac.yaml @@ -3,6 +3,9 @@ services: tags: - { name: kernel.event_subscriber } +imports: + - deptrac.baseline.yaml + deptrac: paths: - ./src @@ -58,6 +61,17 @@ deptrac: layers: # Domains + - name: DefaultBehavior + collectors: + - type: directory + value: src/DefaultBehavior/.* + - name: Graphviz + collectors: + - type: composer + composerPath: composer.json + composerLockPath: composer.lock + packages: + - phpdocumentor/graphviz - name: Analyser collectors: - type: directory @@ -106,12 +120,6 @@ deptrac: collectors: - type: directory value: src/Supportive/OutputFormatter/.* - - type: composer - private: true - composerPath: composer.json - composerLockPath: composer.lock - packages: - - phpdocumentor/graphviz - name: File collectors: - type: directory @@ -177,3 +185,6 @@ deptrac: - Symfony File: - Symfony + DefaultBehavior: + - Symfony + - Graphiz diff --git a/internal/deptrac/IgnoreDependenciesOnContract.php b/internal/deptrac/IgnoreDependenciesOnContract.php index b0e9596e..fcf637de 100644 --- a/internal/deptrac/IgnoreDependenciesOnContract.php +++ b/internal/deptrac/IgnoreDependenciesOnContract.php @@ -9,6 +9,9 @@ class IgnoreDependenciesOnContract implements EventSubscriberInterface { + /** + * @api + */ public function onProcessEvent(ProcessEvent $event): void { if (array_key_exists('Contract', $event->dependentLayers)) { diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 6d76d0d7..e7e4294a 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -37,10 +37,10 @@ parameters: path: src/Core/Analyser/UnassignedTokenAnalyser.php - - message: '#^Property Qossmic\\Deptrac\\Core\\Ast\\AstMap\\ReferenceBuilder\:\:\$tokenTemplates \(list\\) does not accept array\, string\>\.$#' + message: '#^Property Qossmic\\Deptrac\\DefaultBehavior\\Ast\\Parser\\Helpers\\ReferenceBuilder\:\:\$tokenTemplates \(list\\) does not accept array\, string\>\.$#' identifier: assign.propertyType count: 1 - path: src/Core/Ast/AstMap/ReferenceBuilder.php + path: src/DefaultBehavior/Ast/Parser/Helpers/ReferenceBuilder.php - message: '#^Method Qossmic\\Deptrac\\Supportive\\Console\\Command\\DebugTokenCommand\:\:execute\(\) throws checked exception TypeError but it''s missing from the PHPDoc @throws tag\.$#' diff --git a/src/Contract/Analyser/EventHelper.php b/src/Contract/Analyser/EventHelper.php index f135776a..71125299 100644 --- a/src/Contract/Analyser/EventHelper.php +++ b/src/Contract/Analyser/EventHelper.php @@ -4,7 +4,7 @@ namespace Qossmic\Deptrac\Contract\Analyser; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; +use Qossmic\Deptrac\Contract\Layer\LayerProviderInterface; use Qossmic\Deptrac\Contract\OutputFormatter\BaselineMapperInterface; use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Violation; @@ -25,7 +25,7 @@ final class EventHelper private readonly array $skippedViolations; public function __construct( - public readonly LayerProvider $layerProvider, + public readonly LayerProviderInterface $layerProvider, private readonly BaselineMapperInterface $baselineMapper, ) { $this->skippedViolations = $this->baselineMapper->loadViolations(); diff --git a/src/Core/Ast/AstException.php b/src/Contract/Ast/AstException.php similarity index 60% rename from src/Core/Ast/AstException.php rename to src/Contract/Ast/AstException.php index 01d4e5d9..908b6fa8 100644 --- a/src/Core/Ast/AstException.php +++ b/src/Contract/Ast/AstException.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast; +namespace Qossmic\Deptrac\Contract\Ast; use Qossmic\Deptrac\Contract\ExceptionInterface; -use Qossmic\Deptrac\Core\InputCollector\InputException; use RuntimeException; +use Throwable; class AstException extends RuntimeException implements ExceptionInterface { - public static function couldNotCollectFiles(InputException $exception): self + public static function couldNotCollectFiles(Throwable $exception): self { return new self('Could not create AstMap.', 0, $exception); } diff --git a/src/Contract/Ast/AstMap/AstMapInterface.php b/src/Contract/Ast/AstMap/AstMapInterface.php new file mode 100644 index 00000000..d9dea1e8 --- /dev/null +++ b/src/Contract/Ast/AstMap/AstMapInterface.php @@ -0,0 +1,30 @@ + + */ + public function getClassLikeReferences(): array; + + /** + * @return array + */ + public function getFileReferences(): array; + + /** + * @return array + */ + public function getFunctionReferences(): array; + + public function getFunctionReferenceForToken(FunctionToken $tokenName): ?FunctionReference; + + /** + * @return iterable + */ + public function getClassInherits(ClassLikeToken $classLikeName): iterable; +} diff --git a/src/Contract/Ast/AstMapExtractorInterface.php b/src/Contract/Ast/AstMapExtractorInterface.php new file mode 100644 index 00000000..f5b832e1 --- /dev/null +++ b/src/Contract/Ast/AstMapExtractorInterface.php @@ -0,0 +1,15 @@ +> $attributes diff --git a/src/Core/Layer/Collector/CollectorResolverInterface.php b/src/Contract/Layer/CollectorResolverInterface.php similarity index 81% rename from src/Core/Layer/Collector/CollectorResolverInterface.php rename to src/Contract/Layer/CollectorResolverInterface.php index b014282a..fc823f43 100644 --- a/src/Core/Layer/Collector/CollectorResolverInterface.php +++ b/src/Contract/Layer/CollectorResolverInterface.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\Contract\Layer; interface CollectorResolverInterface { diff --git a/src/Contract/Layer/LayerProviderInterface.php b/src/Contract/Layer/LayerProviderInterface.php new file mode 100644 index 00000000..b788bf42 --- /dev/null +++ b/src/Contract/Layer/LayerProviderInterface.php @@ -0,0 +1,15 @@ + + * + * @throws CircularReferenceException + */ + public function getAllowedLayers(string $layerName): array; +} diff --git a/src/Core/Layer/LayerResolverInterface.php b/src/Contract/Layer/LayerResolverInterface.php similarity index 83% rename from src/Core/Layer/LayerResolverInterface.php rename to src/Contract/Layer/LayerResolverInterface.php index 9badfd39..1b1af3aa 100644 --- a/src/Core/Layer/LayerResolverInterface.php +++ b/src/Contract/Layer/LayerResolverInterface.php @@ -2,12 +2,10 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer; +namespace Qossmic\Deptrac\Contract\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; -use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; interface LayerResolverInterface { diff --git a/src/Core/Analyser/AnalyserException.php b/src/Core/Analyser/AnalyserException.php index 2c1a0c1c..88e77b9c 100755 --- a/src/Core/Analyser/AnalyserException.php +++ b/src/Core/Analyser/AnalyserException.php @@ -4,12 +4,12 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\ExceptionInterface; use Qossmic\Deptrac\Contract\Layer\CircularReferenceException; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; use Qossmic\Deptrac\Core\Dependency\InvalidEmitterConfigurationException; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; use RuntimeException; diff --git a/src/Core/Analyser/DependencyLayersAnalyser.php b/src/Core/Analyser/DependencyLayersAnalyser.php index 5902675f..8eed8b4d 100644 --- a/src/Core/Analyser/DependencyLayersAnalyser.php +++ b/src/Core/Analyser/DependencyLayersAnalyser.php @@ -8,17 +8,17 @@ use Qossmic\Deptrac\Contract\Analyser\AnalysisResult; use Qossmic\Deptrac\Contract\Analyser\PostProcessEvent; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Contract\Result\Warning; -use Qossmic\Deptrac\Core\Ast\AstException; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\DependencyResolver; use Qossmic\Deptrac\Core\Dependency\InvalidEmitterConfigurationException; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; use function count; diff --git a/src/Core/Analyser/LayerDependenciesAnalyser.php b/src/Core/Analyser/LayerDependenciesAnalyser.php index 6e992491..b2dcba94 100644 --- a/src/Core/Analyser/LayerDependenciesAnalyser.php +++ b/src/Core/Analyser/LayerDependenciesAnalyser.php @@ -4,17 +4,17 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Contract\Result\Uncovered; -use Qossmic\Deptrac\Core\Ast\AstException; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\DependencyResolver; use Qossmic\Deptrac\Core\Dependency\InvalidEmitterConfigurationException; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; class LayerDependenciesAnalyser { diff --git a/src/Core/Analyser/LayerForTokenAnalyser.php b/src/Core/Analyser/LayerForTokenAnalyser.php index 737ec19f..ddde05fc 100644 --- a/src/Core/Analyser/LayerForTokenAnalyser.php +++ b/src/Core/Analyser/LayerForTokenAnalyser.php @@ -4,16 +4,16 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; use function array_values; use function ksort; diff --git a/src/Core/Analyser/RulesetUsageAnalyser.php b/src/Core/Analyser/RulesetUsageAnalyser.php index 0c97fce6..56b21e07 100644 --- a/src/Core/Analyser/RulesetUsageAnalyser.php +++ b/src/Core/Analyser/RulesetUsageAnalyser.php @@ -4,18 +4,18 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CircularReferenceException; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; -use Qossmic\Deptrac\Core\Ast\AstException; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\DependencyResolver; use Qossmic\Deptrac\Core\Dependency\InvalidEmitterConfigurationException; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; +use Qossmic\Deptrac\Core\Layer\LayerProvider; class RulesetUsageAnalyser { diff --git a/src/Core/Analyser/TokenInLayerAnalyser.php b/src/Core/Analyser/TokenInLayerAnalyser.php index 401a322e..2264165a 100644 --- a/src/Core/Analyser/TokenInLayerAnalyser.php +++ b/src/Core/Analyser/TokenInLayerAnalyser.php @@ -4,15 +4,15 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Config\EmitterType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; use function array_values; use function in_array; diff --git a/src/Core/Analyser/UnassignedTokenAnalyser.php b/src/Core/Analyser/UnassignedTokenAnalyser.php index 5127554e..1b53fb8c 100644 --- a/src/Core/Analyser/UnassignedTokenAnalyser.php +++ b/src/Core/Analyser/UnassignedTokenAnalyser.php @@ -4,15 +4,15 @@ namespace Qossmic\Deptrac\Core\Analyser; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Config\EmitterType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; use Qossmic\Deptrac\Core\Dependency\TokenResolver; use Qossmic\Deptrac\Core\Dependency\UnrecognizedTokenException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; use function array_values; use function natcasesort; diff --git a/src/Core/Ast/AstLoader.php b/src/Core/Ast/AstLoader.php index e790ac8a..abcd4aac 100644 --- a/src/Core/Ast/AstLoader.php +++ b/src/Core/Ast/AstLoader.php @@ -11,7 +11,6 @@ use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Contract\Ast\PostCreateAstMapEvent; use Qossmic\Deptrac\Contract\Ast\PreCreateAstMapEvent; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; class AstLoader { diff --git a/src/Core/Ast/AstMap/AstMap.php b/src/Core/Ast/AstMap.php similarity index 94% rename from src/Core/Ast/AstMap/AstMap.php rename to src/Core/Ast/AstMap.php index ec48d45c..78f2a05c 100644 --- a/src/Core/Ast/AstMap/AstMap.php +++ b/src/Core/Ast/AstMap.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\AstMap; +namespace Qossmic\Deptrac\Core\Ast; use ArrayObject; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInherit; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\FileReference; @@ -15,7 +16,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\TokenInterface; use SplStack; -class AstMap +class AstMap implements AstMapInterface { /** * @var array @@ -42,25 +43,16 @@ public function __construct(array $astFileReferences) } } - /** - * @return ClassLikeReference[] - */ public function getClassLikeReferences(): array { return $this->classReferences; } - /** - * @return FileReference[] - */ public function getFileReferences(): array { return $this->fileReferences; } - /** - * @return FunctionReference[] - */ public function getFunctionReferences(): array { return $this->functionReferences; @@ -81,9 +73,6 @@ public function getFileReferenceForToken(FileToken $tokenName): ?FileReference return $this->fileReferences[$tokenName->toString()] ?? null; } - /** - * @return iterable - */ public function getClassInherits(ClassLikeToken $classLikeName): iterable { $classReference = $this->getClassReferenceForToken($classLikeName); diff --git a/src/Core/Ast/AstMapExtractor.php b/src/Core/Ast/AstMapExtractor.php index 8486bc14..ab782412 100644 --- a/src/Core/Ast/AstMapExtractor.php +++ b/src/Core/Ast/AstMapExtractor.php @@ -4,11 +4,12 @@ namespace Qossmic\Deptrac\Core\Ast; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Contract\Ast\AstException; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; use Qossmic\Deptrac\Core\InputCollector\InputCollectorInterface; use Qossmic\Deptrac\Core\InputCollector\InputException; -class AstMapExtractor +class AstMapExtractor implements AstMapExtractorInterface { private ?AstMap $astMapCache = null; diff --git a/src/Core/Ast/Parser/NikicPhpParser/NikicTypeResolver.php b/src/Core/Ast/Parser/NikicTypeResolver.php similarity index 99% rename from src/Core/Ast/Parser/NikicPhpParser/NikicTypeResolver.php rename to src/Core/Ast/Parser/NikicTypeResolver.php index 28bf9e47..c68b84da 100644 --- a/src/Core/Ast/Parser/NikicPhpParser/NikicTypeResolver.php +++ b/src/Core/Ast/Parser/NikicTypeResolver.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser; +namespace Qossmic\Deptrac\Core\Ast\Parser; use InvalidArgumentException; use phpDocumentor\Reflection\FqsenResolver; diff --git a/src/Core/Dependency/DependencyList.php b/src/Core/Dependency/DependencyList.php index acc74041..8b5d0b44 100644 --- a/src/Core/Dependency/DependencyList.php +++ b/src/Core/Dependency/DependencyList.php @@ -6,16 +6,17 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\TokenInterface; use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; -class DependencyList +class DependencyList implements DependencyListInterface { - /** @var array */ + /** @var array */ private array $dependencies = []; /** @var array */ private array $inheritDependencies = []; - public function addDependency(Dependency $dependency): self + public function addDependency(DependencyInterface $dependency): void { $tokenName = $dependency->getDepender()->toString(); if (!isset($this->dependencies[$tokenName])) { @@ -23,24 +24,22 @@ public function addDependency(Dependency $dependency): self } $this->dependencies[$tokenName][] = $dependency; - - return $this; } public function addInheritDependency(InheritDependency $dependency): self { - $classLikeName = $dependency->getDepender()->toString(); - if (!isset($this->inheritDependencies[$classLikeName])) { - $this->inheritDependencies[$classLikeName] = []; + $tokenName = $dependency->getDepender()->toString(); + if (!isset($this->inheritDependencies[$tokenName])) { + $this->inheritDependencies[$tokenName] = []; } - $this->inheritDependencies[$classLikeName][] = $dependency; + $this->inheritDependencies[$tokenName][] = $dependency; return $this; } /** - * @return Dependency[] + * @return DependencyInterface[] */ public function getDependenciesByClass(TokenInterface $classLikeName): array { diff --git a/src/Core/Dependency/DependencyResolver.php b/src/Core/Dependency/DependencyResolver.php index 08f8a13d..86a48c35 100644 --- a/src/Core/Dependency/DependencyResolver.php +++ b/src/Core/Dependency/DependencyResolver.php @@ -7,12 +7,12 @@ use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\EventDispatcher\EventDispatcherInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; use Qossmic\Deptrac\Contract\Dependency\PostEmitEvent; use Qossmic\Deptrac\Contract\Dependency\PostFlattenEvent; use Qossmic\Deptrac\Contract\Dependency\PreEmitEvent; use Qossmic\Deptrac\Contract\Dependency\PreFlattenEvent; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Emitter\DependencyEmitterInterface; +use Qossmic\Deptrac\Core\Ast\AstMap; class DependencyResolver { @@ -21,7 +21,6 @@ class DependencyResolver */ public function __construct( private readonly array $config, - private readonly InheritanceFlattener $inheritanceFlattener, private readonly ContainerInterface $emitterLocator, private readonly EventDispatcherInterface $eventDispatcher, ) {} @@ -49,9 +48,25 @@ public function resolve(AstMap $astMap): DependencyList } $this->eventDispatcher->dispatch(new PreFlattenEvent()); - $this->inheritanceFlattener->flattenDependencies($astMap, $result); + self::flattenDependencies($astMap, $result); $this->eventDispatcher->dispatch(new PostFlattenEvent()); return $result; } + + public static function flattenDependencies(AstMap $astMap, DependencyList $dependencyList): void + { + foreach ($astMap->getClassLikeReferences() as $classReference) { + $classLikeName = $classReference->getToken(); + foreach ($astMap->getClassInherits($classLikeName) as $inherit) { + foreach ($dependencyList->getDependenciesByClass($inherit->classLikeName) as $dep) { + $dependencyList->addInheritDependency( + new InheritDependency( + $classLikeName, $dep->getDependent(), $dep, $inherit + ) + ); + } + } + } + } } diff --git a/src/Core/Dependency/Emitter/DependencyEmitterInterface.php b/src/Core/Dependency/Emitter/DependencyEmitterInterface.php deleted file mode 100644 index 1940d81d..00000000 --- a/src/Core/Dependency/Emitter/DependencyEmitterInterface.php +++ /dev/null @@ -1,15 +0,0 @@ -getClassLikeReferences() as $classReference) { - $classLikeName = $classReference->getToken(); - foreach ($astMap->getClassInherits($classLikeName) as $inherit) { - foreach ($dependencyList->getDependenciesByClass($inherit->classLikeName) as $dep) { - $dependencyList->addInheritDependency( - new InheritDependency( - $classLikeName, $dep->getDependent(), $dep, $inherit - ) - ); - } - } - } - } -} diff --git a/src/Core/Dependency/InvalidEmitterConfigurationException.php b/src/Core/Dependency/InvalidEmitterConfigurationException.php index ae8816de..ae7be817 100755 --- a/src/Core/Dependency/InvalidEmitterConfigurationException.php +++ b/src/Core/Dependency/InvalidEmitterConfigurationException.php @@ -4,8 +4,8 @@ namespace Qossmic\Deptrac\Core\Dependency; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; use Qossmic\Deptrac\Contract\ExceptionInterface; -use Qossmic\Deptrac\Core\Dependency\Emitter\DependencyEmitterInterface; use RuntimeException; class InvalidEmitterConfigurationException extends RuntimeException implements ExceptionInterface diff --git a/src/Core/Dependency/TokenResolver.php b/src/Core/Dependency/TokenResolver.php index d324e2c1..584ff462 100644 --- a/src/Core/Dependency/TokenResolver.php +++ b/src/Core/Dependency/TokenResolver.php @@ -14,7 +14,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\TokenInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\VariableReference; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Core\Ast\AstMap; class TokenResolver { diff --git a/src/Core/Layer/Collector/CollectorProvider.php b/src/Core/Layer/CollectorProvider.php similarity index 96% rename from src/Core/Layer/Collector/CollectorProvider.php rename to src/Core/Layer/CollectorProvider.php index d8accad3..3cd39881 100644 --- a/src/Core/Layer/Collector/CollectorProvider.php +++ b/src/Core/Layer/CollectorProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\Core\Layer; use Psr\Container\ContainerInterface; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; diff --git a/src/Core/Layer/Collector/CollectorResolver.php b/src/Core/Layer/CollectorResolver.php similarity index 88% rename from src/Core/Layer/Collector/CollectorResolver.php rename to src/Core/Layer/CollectorResolver.php index 548511be..5073f6db 100644 --- a/src/Core/Layer/Collector/CollectorResolver.php +++ b/src/Core/Layer/CollectorResolver.php @@ -2,9 +2,11 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\Core\Layer; use Psr\Container\ContainerExceptionInterface; +use Qossmic\Deptrac\Contract\Layer\Collectable; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use function array_key_exists; diff --git a/src/Contract/Layer/LayerProvider.php b/src/Core/Layer/LayerProvider.php similarity index 86% rename from src/Contract/Layer/LayerProvider.php rename to src/Core/Layer/LayerProvider.php index 90774f7c..19901de4 100644 --- a/src/Contract/Layer/LayerProvider.php +++ b/src/Core/Layer/LayerProvider.php @@ -2,12 +2,15 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Contract\Layer; +namespace Qossmic\Deptrac\Core\Layer; + +use Qossmic\Deptrac\Contract\Layer\CircularReferenceException; +use Qossmic\Deptrac\Contract\Layer\LayerProviderInterface; /** * Provides information about layer configuration. */ -final class LayerProvider +final class LayerProvider implements LayerProviderInterface { /** * @param array> $allowedLayers source layer -> target layers diff --git a/src/Core/Layer/LayerResolver.php b/src/Core/Layer/LayerResolver.php index 28598893..064cdc6d 100644 --- a/src/Core/Layer/LayerResolver.php +++ b/src/Core/Layer/LayerResolver.php @@ -5,9 +5,10 @@ namespace Qossmic\Deptrac\Core\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Layer\Collectable; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\Collectable; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorResolverInterface; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use function array_key_exists; diff --git a/src/Core/Analyser/EventHandler/AllowDependencyHandler.php b/src/DefaultBehavior/Analyser/AllowDependencyHandler.php similarity index 82% rename from src/Core/Analyser/EventHandler/AllowDependencyHandler.php rename to src/DefaultBehavior/Analyser/AllowDependencyHandler.php index 6ca89d66..ae29023b 100644 --- a/src/Core/Analyser/EventHandler/AllowDependencyHandler.php +++ b/src/DefaultBehavior/Analyser/AllowDependencyHandler.php @@ -2,16 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; use Qossmic\Deptrac\Contract\Result\Allowed; use Symfony\Component\EventDispatcher\EventSubscriberInterface; -/** - * @internal - */ -class AllowDependencyHandler implements EventSubscriberInterface +final class AllowDependencyHandler implements EventSubscriberInterface { public static function getSubscribedEvents() { diff --git a/src/Core/Analyser/EventHandler/DependsOnDisallowedLayer.php b/src/DefaultBehavior/Analyser/DependsOnDisallowedLayer.php similarity index 91% rename from src/Core/Analyser/EventHandler/DependsOnDisallowedLayer.php rename to src/DefaultBehavior/Analyser/DependsOnDisallowedLayer.php index fe307a13..b26aceac 100644 --- a/src/Core/Analyser/EventHandler/DependsOnDisallowedLayer.php +++ b/src/DefaultBehavior/Analyser/DependsOnDisallowedLayer.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; @@ -12,10 +12,7 @@ use function in_array; -/** - * @internal - */ -class DependsOnDisallowedLayer implements ViolationCreatingInterface +final class DependsOnDisallowedLayer implements ViolationCreatingInterface { public function __construct(private readonly EventHelper $eventHelper) {} diff --git a/src/Core/Analyser/EventHandler/DependsOnInternalToken.php b/src/DefaultBehavior/Analyser/DependsOnInternalToken.php similarity index 92% rename from src/Core/Analyser/EventHandler/DependsOnInternalToken.php rename to src/DefaultBehavior/Analyser/DependsOnInternalToken.php index ab242feb..d7cf71fe 100644 --- a/src/Core/Analyser/EventHandler/DependsOnInternalToken.php +++ b/src/DefaultBehavior/Analyser/DependsOnInternalToken.php @@ -2,17 +2,14 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; use Qossmic\Deptrac\Contract\Analyser\ViolationCreatingInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; -/** - * @internal - */ -class DependsOnInternalToken implements ViolationCreatingInterface +final class DependsOnInternalToken implements ViolationCreatingInterface { private ?string $internalTag; diff --git a/src/Core/Analyser/EventHandler/DependsOnPrivateLayer.php b/src/DefaultBehavior/Analyser/DependsOnPrivateLayer.php similarity index 89% rename from src/Core/Analyser/EventHandler/DependsOnPrivateLayer.php rename to src/DefaultBehavior/Analyser/DependsOnPrivateLayer.php index 804aef91..c871b4e7 100644 --- a/src/Core/Analyser/EventHandler/DependsOnPrivateLayer.php +++ b/src/DefaultBehavior/Analyser/DependsOnPrivateLayer.php @@ -2,16 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; use Qossmic\Deptrac\Contract\Analyser\ViolationCreatingInterface; -/** - * @internal - */ -class DependsOnPrivateLayer implements ViolationCreatingInterface +final class DependsOnPrivateLayer implements ViolationCreatingInterface { public function __construct(private readonly EventHelper $eventHelper) {} diff --git a/src/Core/Analyser/EventHandler/MatchingLayersHandler.php b/src/DefaultBehavior/Analyser/MatchingLayersHandler.php similarity index 82% rename from src/Core/Analyser/EventHandler/MatchingLayersHandler.php rename to src/DefaultBehavior/Analyser/MatchingLayersHandler.php index 068ec434..d914db6a 100644 --- a/src/Core/Analyser/EventHandler/MatchingLayersHandler.php +++ b/src/DefaultBehavior/Analyser/MatchingLayersHandler.php @@ -2,15 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; -/** - * @internal - */ -class MatchingLayersHandler implements EventSubscriberInterface +final class MatchingLayersHandler implements EventSubscriberInterface { public function invoke(ProcessEvent $event): void { diff --git a/src/Core/Analyser/EventHandler/UncoveredDependentHandler.php b/src/DefaultBehavior/Analyser/UncoveredDependentHandler.php similarity index 90% rename from src/Core/Analyser/EventHandler/UncoveredDependentHandler.php rename to src/DefaultBehavior/Analyser/UncoveredDependentHandler.php index f2af6b55..bb60a7ed 100644 --- a/src/Core/Analyser/EventHandler/UncoveredDependentHandler.php +++ b/src/DefaultBehavior/Analyser/UncoveredDependentHandler.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use JetBrains\PHPStormStub\PhpStormStubsMap; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; @@ -10,10 +10,7 @@ use Qossmic\Deptrac\Contract\Result\Uncovered; use Symfony\Component\EventDispatcher\EventSubscriberInterface; -/** - * @internal - */ -class UncoveredDependentHandler implements EventSubscriberInterface +final class UncoveredDependentHandler implements EventSubscriberInterface { public function __construct(private readonly bool $ignoreUncoveredInternalClasses) {} diff --git a/src/Core/Analyser/EventHandler/UnmatchedSkippedViolations.php b/src/DefaultBehavior/Analyser/UnmatchedSkippedViolations.php similarity index 73% rename from src/Core/Analyser/EventHandler/UnmatchedSkippedViolations.php rename to src/DefaultBehavior/Analyser/UnmatchedSkippedViolations.php index 46c01ea5..d5fa4a8d 100644 --- a/src/Core/Analyser/EventHandler/UnmatchedSkippedViolations.php +++ b/src/DefaultBehavior/Analyser/UnmatchedSkippedViolations.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Analyser\EventHandler; +namespace Qossmic\Deptrac\DefaultBehavior\Analyser; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Analyser\PostProcessEvent; @@ -11,14 +11,11 @@ use function sprintf; -/** - * @internal - */ -class UnmatchedSkippedViolations implements EventSubscriberInterface +final class UnmatchedSkippedViolations implements EventSubscriberInterface { public function __construct(private readonly EventHelper $eventHelper) {} - public function handleUnmatchedSkipped(PostProcessEvent $event): void + public function invoke(PostProcessEvent $event): void { $ruleset = $event->getResult(); @@ -32,7 +29,7 @@ public function handleUnmatchedSkipped(PostProcessEvent $event): void public static function getSubscribedEvents() { return [ - PostProcessEvent::class => ['handleUnmatchedSkipped'], + PostProcessEvent::class => ['invoke'], ]; } } diff --git a/src/Core/Ast/Parser/Extractors/AnonymousClassExtractor.php b/src/DefaultBehavior/Ast/Extractors/AnonymousClassExtractor.php similarity index 91% rename from src/Core/Ast/Parser/Extractors/AnonymousClassExtractor.php rename to src/DefaultBehavior/Ast/Extractors/AnonymousClassExtractor.php index 4ab32949..592cfda6 100644 --- a/src/Core/Ast/Parser/Extractors/AnonymousClassExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/AnonymousClassExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Name; @@ -16,7 +16,7 @@ /** * @implements ReferenceExtractorInterface */ -class AnonymousClassExtractor implements ReferenceExtractorInterface +final class AnonymousClassExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/CatchExtractor.php b/src/DefaultBehavior/Ast/Extractors/CatchExtractor.php similarity index 89% rename from src/Core/Ast/Parser/Extractors/CatchExtractor.php rename to src/DefaultBehavior/Ast/Extractors/CatchExtractor.php index 43f7d5b3..da6f759d 100644 --- a/src/Core/Ast/Parser/Extractors/CatchExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/CatchExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Stmt\Catch_; @@ -16,7 +16,7 @@ /** * @implements ReferenceExtractorInterface */ -class CatchExtractor implements ReferenceExtractorInterface +final class CatchExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/ClassConstantExtractor.php b/src/DefaultBehavior/Ast/Extractors/ClassConstantExtractor.php similarity index 87% rename from src/Core/Ast/Parser/Extractors/ClassConstantExtractor.php rename to src/DefaultBehavior/Ast/Extractors/ClassConstantExtractor.php index 6080dc44..c1a1ea07 100644 --- a/src/Core/Ast/Parser/Extractors/ClassConstantExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/ClassConstantExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; @@ -16,7 +16,7 @@ /** * @implements ReferenceExtractorInterface */ -class ClassConstantExtractor implements ReferenceExtractorInterface +final class ClassConstantExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/ClassExtractor.php b/src/DefaultBehavior/Ast/Extractors/ClassExtractor.php similarity index 90% rename from src/Core/Ast/Parser/Extractors/ClassExtractor.php rename to src/DefaultBehavior/Ast/Extractors/ClassExtractor.php index fdccc6dd..6c6faa79 100644 --- a/src/Core/Ast/Parser/Extractors/ClassExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/ClassExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Name; @@ -16,7 +16,7 @@ /** * @implements ReferenceExtractorInterface */ -class ClassExtractor implements ReferenceExtractorInterface +final class ClassExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/ClassLikeExtractor.php b/src/DefaultBehavior/Ast/Extractors/ClassLikeExtractor.php similarity index 96% rename from src/Core/Ast/Parser/Extractors/ClassLikeExtractor.php rename to src/DefaultBehavior/Ast/Extractors/ClassLikeExtractor.php index 192c66c6..7302d2be 100644 --- a/src/Core/Ast/Parser/Extractors/ClassLikeExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/ClassLikeExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Comment\Doc; use PhpParser\Node; @@ -24,7 +24,7 @@ /** * @implements ReferenceExtractorInterface */ -class ClassLikeExtractor implements ReferenceExtractorInterface +final class ClassLikeExtractor implements ReferenceExtractorInterface { private readonly Lexer $lexer; private readonly PhpDocParser $docParser; diff --git a/src/Core/Ast/Parser/Extractors/ClassMethodExtractor.php b/src/DefaultBehavior/Ast/Extractors/ClassMethodExtractor.php similarity index 95% rename from src/Core/Ast/Parser/Extractors/ClassMethodExtractor.php rename to src/DefaultBehavior/Ast/Extractors/ClassMethodExtractor.php index 329eadc9..cc22c209 100644 --- a/src/Core/Ast/Parser/Extractors/ClassMethodExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/ClassMethodExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Comment\Doc; use PhpParser\Node; @@ -23,7 +23,7 @@ /** * @implements ReferenceExtractorInterface */ -class ClassMethodExtractor implements ReferenceExtractorInterface +final class ClassMethodExtractor implements ReferenceExtractorInterface { private readonly Lexer $lexer; private readonly PhpDocParser $docParser; diff --git a/src/Core/Ast/Parser/Extractors/FunctionCallExtractor.php b/src/DefaultBehavior/Ast/Extractors/FunctionCallExtractor.php similarity index 91% rename from src/Core/Ast/Parser/Extractors/FunctionCallExtractor.php rename to src/DefaultBehavior/Ast/Extractors/FunctionCallExtractor.php index eb48f26d..7c557dcb 100644 --- a/src/Core/Ast/Parser/Extractors/FunctionCallExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/FunctionCallExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; @@ -21,7 +21,7 @@ * * @implements ReferenceExtractorInterface<\PhpParser\Node\Expr\FuncCall> */ -class FunctionCallExtractor implements ReferenceExtractorInterface +final class FunctionCallExtractor implements ReferenceExtractorInterface { public function __construct( private readonly TypeResolverInterface $typeResolver, diff --git a/src/Core/Ast/Parser/Extractors/FunctionLikeExtractor.php b/src/DefaultBehavior/Ast/Extractors/FunctionLikeExtractor.php similarity index 93% rename from src/Core/Ast/Parser/Extractors/FunctionLikeExtractor.php rename to src/DefaultBehavior/Ast/Extractors/FunctionLikeExtractor.php index 8697f18f..d62a6f53 100644 --- a/src/Core/Ast/Parser/Extractors/FunctionLikeExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/FunctionLikeExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; @@ -15,7 +15,7 @@ /** * @implements ReferenceExtractorInterface */ -class FunctionLikeExtractor implements ReferenceExtractorInterface +final class FunctionLikeExtractor implements ReferenceExtractorInterface { public function __construct( private readonly TypeResolverInterface $typeResolver, diff --git a/src/Core/Ast/Parser/Extractors/GroupUseExtractor.php b/src/DefaultBehavior/Ast/Extractors/GroupUseExtractor.php similarity index 88% rename from src/Core/Ast/Parser/Extractors/GroupUseExtractor.php rename to src/DefaultBehavior/Ast/Extractors/GroupUseExtractor.php index 6140f044..90a6a68d 100644 --- a/src/Core/Ast/Parser/Extractors/GroupUseExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/GroupUseExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Stmt\GroupUse; @@ -16,7 +16,7 @@ /** * @implements ReferenceExtractorInterface */ -class GroupUseExtractor implements ReferenceExtractorInterface +final class GroupUseExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/InstanceofExtractor.php b/src/DefaultBehavior/Ast/Extractors/InstanceofExtractor.php similarity index 89% rename from src/Core/Ast/Parser/Extractors/InstanceofExtractor.php rename to src/DefaultBehavior/Ast/Extractors/InstanceofExtractor.php index dfa5305a..47dcb6f6 100644 --- a/src/Core/Ast/Parser/Extractors/InstanceofExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/InstanceofExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Expr\Instanceof_; @@ -17,7 +17,7 @@ /** * @implements ReferenceExtractorInterface */ -class InstanceofExtractor implements ReferenceExtractorInterface +final class InstanceofExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/InterfaceExtractor.php b/src/DefaultBehavior/Ast/Extractors/InterfaceExtractor.php similarity index 87% rename from src/Core/Ast/Parser/Extractors/InterfaceExtractor.php rename to src/DefaultBehavior/Ast/Extractors/InterfaceExtractor.php index 2140ceae..cf5ffbb6 100644 --- a/src/Core/Ast/Parser/Extractors/InterfaceExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/InterfaceExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Stmt\Interface_; @@ -15,7 +15,7 @@ /** * @implements ReferenceExtractorInterface */ -class InterfaceExtractor implements ReferenceExtractorInterface +final class InterfaceExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/NewExtractor.php b/src/DefaultBehavior/Ast/Extractors/NewExtractor.php similarity index 90% rename from src/Core/Ast/Parser/Extractors/NewExtractor.php rename to src/DefaultBehavior/Ast/Extractors/NewExtractor.php index 386fdbba..c39690d3 100644 --- a/src/Core/Ast/Parser/Extractors/NewExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/NewExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Expr\New_; @@ -17,7 +17,7 @@ /** * @implements ReferenceExtractorInterface */ -class NewExtractor implements ReferenceExtractorInterface +final class NewExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/PropertyExtractor.php b/src/DefaultBehavior/Ast/Extractors/PropertyExtractor.php similarity index 95% rename from src/Core/Ast/Parser/Extractors/PropertyExtractor.php rename to src/DefaultBehavior/Ast/Extractors/PropertyExtractor.php index 40cffa14..e70bbfe1 100644 --- a/src/Core/Ast/Parser/Extractors/PropertyExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/PropertyExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Comment\Doc; use PhpParser\Node; @@ -23,7 +23,7 @@ /** * @implements ReferenceExtractorInterface */ -class PropertyExtractor implements ReferenceExtractorInterface +final class PropertyExtractor implements ReferenceExtractorInterface { private readonly Lexer $lexer; private readonly PhpDocParser $docParser; diff --git a/src/Core/Ast/Parser/Extractors/StaticCallExtractor.php b/src/DefaultBehavior/Ast/Extractors/StaticCallExtractor.php similarity index 89% rename from src/Core/Ast/Parser/Extractors/StaticCallExtractor.php rename to src/DefaultBehavior/Ast/Extractors/StaticCallExtractor.php index 4f0afdeb..20329f62 100644 --- a/src/Core/Ast/Parser/Extractors/StaticCallExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/StaticCallExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Expr\StaticCall; @@ -17,7 +17,7 @@ /** * @implements ReferenceExtractorInterface */ -class StaticCallExtractor implements ReferenceExtractorInterface +final class StaticCallExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/StaticPropertyFetchExtractor.php b/src/DefaultBehavior/Ast/Extractors/StaticPropertyFetchExtractor.php similarity index 89% rename from src/Core/Ast/Parser/Extractors/StaticPropertyFetchExtractor.php rename to src/DefaultBehavior/Ast/Extractors/StaticPropertyFetchExtractor.php index e26e0073..49dfcfdd 100644 --- a/src/Core/Ast/Parser/Extractors/StaticPropertyFetchExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/StaticPropertyFetchExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Expr\StaticPropertyFetch; @@ -17,7 +17,7 @@ /** * @implements ReferenceExtractorInterface */ -class StaticPropertyFetchExtractor implements ReferenceExtractorInterface +final class StaticPropertyFetchExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/TraitUseExtractor.php b/src/DefaultBehavior/Ast/Extractors/TraitUseExtractor.php similarity index 89% rename from src/Core/Ast/Parser/Extractors/TraitUseExtractor.php rename to src/DefaultBehavior/Ast/Extractors/TraitUseExtractor.php index d15af3a6..a351b543 100644 --- a/src/Core/Ast/Parser/Extractors/TraitUseExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/TraitUseExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; @@ -15,7 +15,7 @@ /** * @implements ReferenceExtractorInterface<\PhpParser\Node\Stmt\TraitUse> */ -class TraitUseExtractor implements ReferenceExtractorInterface +final class TraitUseExtractor implements ReferenceExtractorInterface { public function __construct(private readonly TypeResolverInterface $typeResolver) {} diff --git a/src/Core/Ast/Parser/Extractors/UseExtractor.php b/src/DefaultBehavior/Ast/Extractors/UseExtractor.php similarity index 88% rename from src/Core/Ast/Parser/Extractors/UseExtractor.php rename to src/DefaultBehavior/Ast/Extractors/UseExtractor.php index 515efce4..5ec1b783 100644 --- a/src/Core/Ast/Parser/Extractors/UseExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/UseExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Node; use PhpParser\Node\Stmt\Use_; @@ -15,7 +15,7 @@ /** * @implements ReferenceExtractorInterface */ -class UseExtractor implements ReferenceExtractorInterface +final class UseExtractor implements ReferenceExtractorInterface { public function processNode(Node $node, ReferenceBuilderInterface $referenceBuilder, TypeScope $typeScope): void { diff --git a/src/Core/Ast/Parser/Extractors/VariableExtractor.php b/src/DefaultBehavior/Ast/Extractors/VariableExtractor.php similarity index 95% rename from src/Core/Ast/Parser/Extractors/VariableExtractor.php rename to src/DefaultBehavior/Ast/Extractors/VariableExtractor.php index ea9ed1bf..49921de8 100644 --- a/src/Core/Ast/Parser/Extractors/VariableExtractor.php +++ b/src/DefaultBehavior/Ast/Extractors/VariableExtractor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\Extractors; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Extractors; use PhpParser\Comment\Doc; use PhpParser\Node; @@ -23,7 +23,7 @@ /** * @implements ReferenceExtractorInterface<\PhpParser\Node\Expr\Variable> */ -class VariableExtractor implements ReferenceExtractorInterface +final class VariableExtractor implements ReferenceExtractorInterface { /** * @var list diff --git a/src/Core/Ast/AstMap/ClassLikeReferenceBuilder.php b/src/DefaultBehavior/Ast/Parser/Helpers/ClassLikeReferenceBuilder.php similarity index 97% rename from src/Core/Ast/AstMap/ClassLikeReferenceBuilder.php rename to src/DefaultBehavior/Ast/Parser/Helpers/ClassLikeReferenceBuilder.php index 08f5c80f..338ecd5a 100644 --- a/src/Core/Ast/AstMap/ClassLikeReferenceBuilder.php +++ b/src/DefaultBehavior/Ast/Parser/Helpers/ClassLikeReferenceBuilder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\AstMap; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; diff --git a/src/Core/Ast/AstMap/FileReferenceBuilder.php b/src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceBuilder.php similarity index 98% rename from src/Core/Ast/AstMap/FileReferenceBuilder.php rename to src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceBuilder.php index 18a2fc35..c812dfaf 100644 --- a/src/Core/Ast/AstMap/FileReferenceBuilder.php +++ b/src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceBuilder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\AstMap; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\FileReference; diff --git a/src/Core/Ast/Parser/NikicPhpParser/FileReferenceVisitor.php b/src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceVisitor.php similarity index 97% rename from src/Core/Ast/Parser/NikicPhpParser/FileReferenceVisitor.php rename to src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceVisitor.php index 158dd97b..f066de30 100644 --- a/src/Core/Ast/Parser/NikicPhpParser/FileReferenceVisitor.php +++ b/src/DefaultBehavior/Ast/Parser/Helpers/FileReferenceVisitor.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers; use PhpParser\Node; use PhpParser\Node\Identifier; @@ -22,8 +22,6 @@ use PHPStan\PhpDocParser\Parser\TypeParser; use Qossmic\Deptrac\Contract\Ast\ReferenceExtractorInterface; use Qossmic\Deptrac\Contract\Ast\TypeScope; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; -use Qossmic\Deptrac\Core\Ast\AstMap\ReferenceBuilder; class FileReferenceVisitor extends NodeVisitorAbstract { diff --git a/src/Core/Ast/AstMap/FunctionReferenceBuilder.php b/src/DefaultBehavior/Ast/Parser/Helpers/FunctionReferenceBuilder.php similarity index 89% rename from src/Core/Ast/AstMap/FunctionReferenceBuilder.php rename to src/DefaultBehavior/Ast/Parser/Helpers/FunctionReferenceBuilder.php index 8a552f48..6c65efa7 100644 --- a/src/Core/Ast/AstMap/FunctionReferenceBuilder.php +++ b/src/DefaultBehavior/Ast/Parser/Helpers/FunctionReferenceBuilder.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\AstMap; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; -class FunctionReferenceBuilder extends ReferenceBuilder +final class FunctionReferenceBuilder extends ReferenceBuilder { /** * @param list $tokenTemplates diff --git a/src/Core/Ast/AstMap/ReferenceBuilder.php b/src/DefaultBehavior/Ast/Parser/Helpers/ReferenceBuilder.php similarity index 97% rename from src/Core/Ast/AstMap/ReferenceBuilder.php rename to src/DefaultBehavior/Ast/Parser/Helpers/ReferenceBuilder.php index 0f2fa8ff..a6bb4a1b 100644 --- a/src/Core/Ast/AstMap/ReferenceBuilder.php +++ b/src/DefaultBehavior/Ast/Parser/Helpers/ReferenceBuilder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\AstMap; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInherit; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; diff --git a/src/Core/Ast/Parser/NikicPhpParser/NikicPhpParser.php b/src/DefaultBehavior/Ast/Parser/NikicPhpParser.php similarity index 89% rename from src/Core/Ast/Parser/NikicPhpParser/NikicPhpParser.php rename to src/DefaultBehavior/Ast/Parser/NikicPhpParser.php index 58e9d4f9..49f1a905 100644 --- a/src/Core/Ast/Parser/NikicPhpParser/NikicPhpParser.php +++ b/src/DefaultBehavior/Ast/Parser/NikicPhpParser.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser; +namespace Qossmic\Deptrac\DefaultBehavior\Ast\Parser; use PhpParser\Error; use PhpParser\ErrorHandler\Throwing; @@ -19,9 +19,9 @@ use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Contract\Ast\ReferenceExtractorInterface; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; -use Qossmic\Deptrac\Supportive\File\Exception\CouldNotReadFileException; -use Qossmic\Deptrac\Supportive\File\FileReader; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceVisitor; +use RuntimeException; class NikicPhpParser implements ParserInterface { @@ -117,13 +117,18 @@ public function getMethodNamesForClassLikeReference(ClassLikeReference $classRef protected function loadNodesFromFile(string $filepath): array { try { - $fileContents = FileReader::read($filepath); + $fileContents = @file_get_contents($filepath); + + if (false === $fileContents) { + throw new RuntimeException(sprintf('File "%s" cannot be read.', $filepath)); + } + /** @throws Error */ $nodes = $this->parser->parse($fileContents, new Throwing()); /** @var array $nodes */ return $nodes; - } catch (Error|CouldNotReadFileException $e) { + } catch (Error|RuntimeException $e) { throw CouldNotParseFileException::because($e->getMessage(), $e); } } diff --git a/src/Core/Dependency/Emitter/ClassDependencyEmitter.php b/src/DefaultBehavior/Dependency/ClassDependencyEmitter.php similarity index 78% rename from src/Core/Dependency/Emitter/ClassDependencyEmitter.php rename to src/DefaultBehavior/Dependency/ClassDependencyEmitter.php index a607b802..a88c237f 100644 --- a/src/Core/Dependency/Emitter/ClassDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/ClassDependencyEmitter.php @@ -2,13 +2,14 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class ClassDependencyEmitter implements DependencyEmitterInterface { @@ -17,7 +18,7 @@ public function getName(): string return 'ClassDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($astMap->getClassLikeReferences() as $classReference) { $classLikeName = $classReference->getToken(); diff --git a/src/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitter.php b/src/DefaultBehavior/Dependency/ClassSuperglobalDependencyEmitter.php similarity index 67% rename from src/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitter.php rename to src/DefaultBehavior/Dependency/ClassSuperglobalDependencyEmitter.php index a85eee8b..ee687267 100644 --- a/src/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/ClassSuperglobalDependencyEmitter.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class ClassSuperglobalDependencyEmitter implements DependencyEmitterInterface { @@ -16,7 +17,7 @@ public function getName(): string return 'ClassSuperglobalDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($astMap->getClassLikeReferences() as $classReference) { foreach ($classReference->dependencies as $dependency) { diff --git a/src/Core/Dependency/Emitter/FileDependencyEmitter.php b/src/DefaultBehavior/Dependency/FileDependencyEmitter.php similarity index 70% rename from src/Core/Dependency/Emitter/FileDependencyEmitter.php rename to src/DefaultBehavior/Dependency/FileDependencyEmitter.php index 3393020e..1deec525 100644 --- a/src/Core/Dependency/Emitter/FileDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/FileDependencyEmitter.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class FileDependencyEmitter implements DependencyEmitterInterface { @@ -16,7 +17,7 @@ public function getName(): string return 'FileDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($astMap->getFileReferences() as $fileReference) { foreach ($fileReference->dependencies as $dependency) { diff --git a/src/Core/Dependency/Emitter/FunctionCallDependencyEmitter.php b/src/DefaultBehavior/Dependency/FunctionCallDependencyEmitter.php similarity index 77% rename from src/Core/Dependency/Emitter/FunctionCallDependencyEmitter.php rename to src/DefaultBehavior/Dependency/FunctionCallDependencyEmitter.php index b496a533..11b64c93 100644 --- a/src/Core/Dependency/Emitter/FunctionCallDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/FunctionCallDependencyEmitter.php @@ -2,16 +2,17 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class FunctionCallDependencyEmitter implements DependencyEmitterInterface { @@ -20,7 +21,7 @@ public function getName(): string return 'FunctionCallDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { $this->createDependenciesForReferences($astMap->getClassLikeReferences(), $astMap, $dependencyList); $this->createDependenciesForReferences($astMap->getFunctionReferences(), $astMap, $dependencyList); @@ -30,7 +31,7 @@ public function applyDependencies(AstMap $astMap, DependencyList $dependencyList /** * @param array $references */ - private function createDependenciesForReferences(array $references, AstMap $astMap, DependencyList $dependencyList): void + private function createDependenciesForReferences(array $references, AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($references as $reference) { foreach ($reference->dependencies as $dependency) { diff --git a/src/Core/Dependency/Emitter/FunctionDependencyEmitter.php b/src/DefaultBehavior/Dependency/FunctionDependencyEmitter.php similarity index 73% rename from src/Core/Dependency/Emitter/FunctionDependencyEmitter.php rename to src/DefaultBehavior/Dependency/FunctionDependencyEmitter.php index f7b38006..f6d166c9 100644 --- a/src/Core/Dependency/Emitter/FunctionDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/FunctionDependencyEmitter.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class FunctionDependencyEmitter implements DependencyEmitterInterface { @@ -16,7 +17,7 @@ public function getName(): string return 'FunctionDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($astMap->getFileReferences() as $astFileReference) { foreach ($astFileReference->functionReferences as $astFunctionReference) { diff --git a/src/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitter.php b/src/DefaultBehavior/Dependency/FunctionSuperglobalDependencyEmitter.php similarity index 71% rename from src/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitter.php rename to src/DefaultBehavior/Dependency/FunctionSuperglobalDependencyEmitter.php index 93e4890a..bb6ad602 100644 --- a/src/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/FunctionSuperglobalDependencyEmitter.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class FunctionSuperglobalDependencyEmitter implements DependencyEmitterInterface { @@ -16,7 +17,7 @@ public function getName(): string return 'FunctionSuperglobalDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { foreach ($astMap->getFileReferences() as $astFileReference) { foreach ($astFileReference->functionReferences as $astFunctionReference) { diff --git a/src/Core/Dependency/Dependency.php b/src/DefaultBehavior/Dependency/Helpers/Dependency.php similarity index 88% rename from src/Core/Dependency/Dependency.php rename to src/DefaultBehavior/Dependency/Helpers/Dependency.php index 6d60def5..59473de6 100644 --- a/src/Core/Dependency/Dependency.php +++ b/src/DefaultBehavior/Dependency/Helpers/Dependency.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenInterface; use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; -class Dependency implements DependencyInterface +final class Dependency implements DependencyInterface { public function __construct( private readonly TokenInterface $depender, diff --git a/src/Core/Dependency/Emitter/FQDNIndexNode.php b/src/DefaultBehavior/Dependency/Helpers/FQDNIndexNode.php similarity index 92% rename from src/Core/Dependency/Emitter/FQDNIndexNode.php rename to src/DefaultBehavior/Dependency/Helpers/FQDNIndexNode.php index 0b390979..6be39e85 100644 --- a/src/Core/Dependency/Emitter/FQDNIndexNode.php +++ b/src/DefaultBehavior/Dependency/Helpers/FQDNIndexNode.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers; use function array_shift; use function count; -class FQDNIndexNode +final class FQDNIndexNode { private bool $FQDN = false; diff --git a/src/Core/Dependency/Emitter/UsesDependencyEmitter.php b/src/DefaultBehavior/Dependency/UsesDependencyEmitter.php similarity index 80% rename from src/Core/Dependency/Emitter/UsesDependencyEmitter.php rename to src/DefaultBehavior/Dependency/UsesDependencyEmitter.php index 555f08f6..f11da9b9 100644 --- a/src/Core/Dependency/Emitter/UsesDependencyEmitter.php +++ b/src/DefaultBehavior/Dependency/UsesDependencyEmitter.php @@ -2,13 +2,15 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Dependency\Emitter; +namespace Qossmic\Deptrac\DefaultBehavior\Dependency; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyToken; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Dependency\Dependency; -use Qossmic\Deptrac\Core\Dependency\DependencyList; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; +use Qossmic\Deptrac\Contract\Dependency\DependencyListInterface; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\FQDNIndexNode; use function array_map; use function array_merge; @@ -21,7 +23,7 @@ public function getName(): string return 'UsesDependencyEmitter'; } - public function applyDependencies(AstMap $astMap, DependencyList $dependencyList): void + public function applyDependencies(AstMapInterface $astMap, DependencyListInterface $dependencyList): void { $references = array_merge($astMap->getClassLikeReferences(), $astMap->getFunctionReferences()); $referencesFQDN = array_map( diff --git a/src/Core/Layer/Collector/AttributeCollector.php b/src/DefaultBehavior/Layer/AttributeCollector.php similarity index 93% rename from src/Core/Layer/Collector/AttributeCollector.php rename to src/DefaultBehavior/Layer/AttributeCollector.php index 5cf3b92f..46c21e2f 100644 --- a/src/Core/Layer/Collector/AttributeCollector.php +++ b/src/DefaultBehavior/Layer/AttributeCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; @@ -14,7 +14,7 @@ use function str_contains; -class AttributeCollector implements CollectorInterface +final class AttributeCollector implements CollectorInterface { public function satisfy(array $config, TokenReferenceInterface $reference): bool { diff --git a/src/Core/Layer/Collector/BoolCollector.php b/src/DefaultBehavior/Layer/BoolCollector.php similarity index 94% rename from src/Core/Layer/Collector/BoolCollector.php rename to src/DefaultBehavior/Layer/BoolCollector.php index 5bf490e9..7bf1ea89 100644 --- a/src/Core/Layer/Collector/BoolCollector.php +++ b/src/DefaultBehavior/Layer/BoolCollector.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; final class BoolCollector implements CollectorInterface diff --git a/src/Core/Layer/Collector/ClassCollector.php b/src/DefaultBehavior/Layer/ClassCollector.php similarity index 52% rename from src/Core/Layer/Collector/ClassCollector.php rename to src/DefaultBehavior/Layer/ClassCollector.php index e8b96ac1..2e7ab8e9 100644 --- a/src/Core/Layer/Collector/ClassCollector.php +++ b/src/DefaultBehavior/Layer/ClassCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\AbstractTypeCollector; -class ClassCollector extends AbstractTypeCollector +final class ClassCollector extends AbstractTypeCollector { protected function getType(): ClassLikeType { diff --git a/src/Core/Layer/Collector/ClassLikeCollector.php b/src/DefaultBehavior/Layer/ClassLikeCollector.php similarity index 52% rename from src/Core/Layer/Collector/ClassLikeCollector.php rename to src/DefaultBehavior/Layer/ClassLikeCollector.php index 2d170f2f..3510008e 100644 --- a/src/Core/Layer/Collector/ClassLikeCollector.php +++ b/src/DefaultBehavior/Layer/ClassLikeCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\AbstractTypeCollector; -class ClassLikeCollector extends AbstractTypeCollector +final class ClassLikeCollector extends AbstractTypeCollector { protected function getType(): ClassLikeType { diff --git a/src/Core/Layer/Collector/ClassNameRegexCollector.php b/src/DefaultBehavior/Layer/ClassNameRegexCollector.php similarity index 88% rename from src/Core/Layer/Collector/ClassNameRegexCollector.php rename to src/DefaultBehavior/Layer/ClassNameRegexCollector.php index 15d187f5..2f7ca9b9 100644 --- a/src/Core/Layer/Collector/ClassNameRegexCollector.php +++ b/src/DefaultBehavior/Layer/ClassNameRegexCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\RegexCollector; final class ClassNameRegexCollector extends RegexCollector { diff --git a/src/Core/Layer/Collector/ComposerCollector.php b/src/DefaultBehavior/Layer/ComposerCollector.php similarity index 94% rename from src/Core/Layer/Collector/ComposerCollector.php rename to src/DefaultBehavior/Layer/ComposerCollector.php index d94d4eff..6f9d1329 100644 --- a/src/Core/Layer/Collector/ComposerCollector.php +++ b/src/DefaultBehavior/Layer/ComposerCollector.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\ComposerFilesParser; use RuntimeException; final class ComposerCollector implements CollectorInterface diff --git a/src/Core/Layer/Collector/DirectoryCollector.php b/src/DefaultBehavior/Layer/DirectoryCollector.php similarity index 89% rename from src/Core/Layer/Collector/DirectoryCollector.php rename to src/DefaultBehavior/Layer/DirectoryCollector.php index 6f553fc5..faafafb4 100644 --- a/src/Core/Layer/Collector/DirectoryCollector.php +++ b/src/DefaultBehavior/Layer/DirectoryCollector.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\RegexCollector; use Symfony\Component\Filesystem\Path; final class DirectoryCollector extends RegexCollector diff --git a/src/Core/Layer/Collector/ExtendsCollector.php b/src/DefaultBehavior/Layer/ExtendsCollector.php similarity index 70% rename from src/Core/Layer/Collector/ExtendsCollector.php rename to src/DefaultBehavior/Layer/ExtendsCollector.php index 862cd0c0..95e35121 100644 --- a/src/Core/Layer/Collector/ExtendsCollector.php +++ b/src/DefaultBehavior/Layer/ExtendsCollector.php @@ -2,29 +2,24 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; +use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMapExtractor; final class ExtendsCollector implements CollectorInterface { - private readonly AstMap $astMap; + private AstMapInterface $astMap; - /** - * @throws AstException - */ - public function __construct(AstMapExtractor $astMapExtractor) - { - $this->astMap = $astMapExtractor->extract(); - } + public function __construct(private readonly AstMapExtractorInterface $astMapExtractor) {} public function satisfy(array $config, TokenReferenceInterface $reference): bool { @@ -34,6 +29,11 @@ public function satisfy(array $config, TokenReferenceInterface $reference): bool $interfaceName = $this->getInterfaceName($config); + try { + $this->astMap ??= $this->astMapExtractor->extract(); + } catch (AstException $exception) { + throw CouldNotParseFileException::because('Could not build Ast map', $exception); + } foreach ($this->astMap->getClassInherits($reference->getToken()) as $inherit) { if (AstInheritType::EXTENDS === $inherit->type && $inherit->classLikeName->equals($interfaceName)) { return true; diff --git a/src/Core/Layer/Collector/FunctionNameCollector.php b/src/DefaultBehavior/Layer/FunctionNameCollector.php similarity index 96% rename from src/Core/Layer/Collector/FunctionNameCollector.php rename to src/DefaultBehavior/Layer/FunctionNameCollector.php index 417b8234..7c2ca20d 100644 --- a/src/Core/Layer/Collector/FunctionNameCollector.php +++ b/src/DefaultBehavior/Layer/FunctionNameCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; diff --git a/src/Core/Layer/Collector/GlobCollector.php b/src/DefaultBehavior/Layer/GlobCollector.php similarity index 91% rename from src/Core/Layer/Collector/GlobCollector.php rename to src/DefaultBehavior/Layer/GlobCollector.php index 92bf20ea..8cd84ff3 100644 --- a/src/Core/Layer/Collector/GlobCollector.php +++ b/src/DefaultBehavior/Layer/GlobCollector.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\RegexCollector; use Symfony\Component\Filesystem\Path; use Symfony\Component\Finder\Glob; diff --git a/src/Core/Layer/Collector/AbstractTypeCollector.php b/src/DefaultBehavior/Layer/Helpers/AbstractTypeCollector.php similarity index 95% rename from src/Core/Layer/Collector/AbstractTypeCollector.php rename to src/DefaultBehavior/Layer/Helpers/AbstractTypeCollector.php index f96cbe49..43e78c60 100644 --- a/src/Core/Layer/Collector/AbstractTypeCollector.php +++ b/src/DefaultBehavior/Layer/Helpers/AbstractTypeCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer\Helpers; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; diff --git a/src/Core/Layer/Collector/ComposerFilesParser.php b/src/DefaultBehavior/Layer/Helpers/ComposerFilesParser.php similarity index 98% rename from src/Core/Layer/Collector/ComposerFilesParser.php rename to src/DefaultBehavior/Layer/Helpers/ComposerFilesParser.php index e78a54b4..9657d0a7 100644 --- a/src/Core/Layer/Collector/ComposerFilesParser.php +++ b/src/DefaultBehavior/Layer/Helpers/ComposerFilesParser.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer\Helpers; use JsonException; use RuntimeException; -class ComposerFilesParser +final class ComposerFilesParser { /** * @var array{ diff --git a/src/Core/Layer/Collector/RegexCollector.php b/src/DefaultBehavior/Layer/Helpers/RegexCollector.php similarity index 94% rename from src/Core/Layer/Collector/RegexCollector.php rename to src/DefaultBehavior/Layer/Helpers/RegexCollector.php index 2d1bd45c..cb197bac 100644 --- a/src/Core/Layer/Collector/RegexCollector.php +++ b/src/DefaultBehavior/Layer/Helpers/RegexCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer\Helpers; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; diff --git a/src/Core/Layer/Collector/ImplementsCollector.php b/src/DefaultBehavior/Layer/ImplementsCollector.php similarity index 70% rename from src/Core/Layer/Collector/ImplementsCollector.php rename to src/DefaultBehavior/Layer/ImplementsCollector.php index bf3b0240..92b7b76b 100644 --- a/src/Core/Layer/Collector/ImplementsCollector.php +++ b/src/DefaultBehavior/Layer/ImplementsCollector.php @@ -2,29 +2,24 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; +use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMapExtractor; final class ImplementsCollector implements CollectorInterface { - private readonly AstMap $astMap; + private AstMapInterface $astMap; - /** - * @throws AstException - */ - public function __construct(private AstMapExtractor $astMapExtractor) - { - $this->astMap = $this->astMapExtractor->extract(); - } + public function __construct(private readonly AstMapExtractorInterface $astMapExtractor) {} public function satisfy(array $config, TokenReferenceInterface $reference): bool { @@ -34,6 +29,11 @@ public function satisfy(array $config, TokenReferenceInterface $reference): bool $interfaceName = $this->getInterfaceName($config); + try { + $this->astMap ??= $this->astMapExtractor->extract(); + } catch (AstException $exception) { + throw CouldNotParseFileException::because('Could not build Ast map', $exception); + } foreach ($this->astMap->getClassInherits($reference->getToken()) as $inherit) { if (AstInheritType::IMPLEMENTS === $inherit->type && $inherit->classLikeName->equals($interfaceName)) { return true; diff --git a/src/Core/Layer/Collector/InheritanceLevelCollector.php b/src/DefaultBehavior/Layer/InheritanceLevelCollector.php similarity index 63% rename from src/Core/Layer/Collector/InheritanceLevelCollector.php rename to src/DefaultBehavior/Layer/InheritanceLevelCollector.php index 152dbaed..48ca0bbc 100644 --- a/src/Core/Layer/Collector/InheritanceLevelCollector.php +++ b/src/DefaultBehavior/Layer/InheritanceLevelCollector.php @@ -2,27 +2,22 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; +use Qossmic\Deptrac\Contract\Ast\AstException; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; +use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMapExtractor; final class InheritanceLevelCollector implements CollectorInterface { - private readonly AstMap $astMap; + private AstMapInterface $astMap; - /** - * @throws AstException - */ - public function __construct(private AstMapExtractor $astMapExtractor) - { - $this->astMap = $this->astMapExtractor->extract(); - } + public function __construct(private readonly AstMapExtractorInterface $astMapExtractor) {} public function satisfy(array $config, TokenReferenceInterface $reference): bool { @@ -30,6 +25,11 @@ public function satisfy(array $config, TokenReferenceInterface $reference): bool return false; } + try { + $this->astMap ??= $this->astMapExtractor->extract(); + } catch (AstException $exception) { + throw CouldNotParseFileException::because('Could not build Ast map', $exception); + } $classInherits = $this->astMap->getClassInherits($reference->getToken()); if (!isset($config['value']) || !is_numeric($config['value'])) { throw InvalidCollectorDefinitionException::invalidCollectorConfiguration('InheritanceLevelCollector needs inheritance depth as int.'); diff --git a/src/Core/Layer/Collector/InheritsCollector.php b/src/DefaultBehavior/Layer/InheritsCollector.php similarity index 69% rename from src/Core/Layer/Collector/InheritsCollector.php rename to src/DefaultBehavior/Layer/InheritsCollector.php index 7164f16e..73f6db0b 100644 --- a/src/Core/Layer/Collector/InheritsCollector.php +++ b/src/DefaultBehavior/Layer/InheritsCollector.php @@ -2,28 +2,23 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; +use Qossmic\Deptrac\Contract\Ast\AstException; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; +use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMapExtractor; final class InheritsCollector implements CollectorInterface { - private readonly AstMap $astMap; + private AstMapInterface $astMap; - /** - * @throws AstException - */ - public function __construct(private AstMapExtractor $astMapExtractor) - { - $this->astMap = $this->astMapExtractor->extract(); - } + public function __construct(private readonly AstMapExtractorInterface $astMapExtractor) {} public function satisfy(array $config, TokenReferenceInterface $reference): bool { @@ -33,6 +28,11 @@ public function satisfy(array $config, TokenReferenceInterface $reference): bool $classLikeName = $this->getClassLikeName($config); + try { + $this->astMap ??= $this->astMapExtractor->extract(); + } catch (AstException $exception) { + throw CouldNotParseFileException::because('Could not build Ast map', $exception); + } foreach ($this->astMap->getClassInherits($reference->getToken()) as $inherit) { if ($inherit->classLikeName->equals($classLikeName)) { return true; diff --git a/src/Core/Layer/Collector/InterfaceCollector.php b/src/DefaultBehavior/Layer/InterfaceCollector.php similarity index 52% rename from src/Core/Layer/Collector/InterfaceCollector.php rename to src/DefaultBehavior/Layer/InterfaceCollector.php index 70f7f800..3b9fd6ec 100644 --- a/src/Core/Layer/Collector/InterfaceCollector.php +++ b/src/DefaultBehavior/Layer/InterfaceCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\AbstractTypeCollector; -class InterfaceCollector extends AbstractTypeCollector +final class InterfaceCollector extends AbstractTypeCollector { protected function getType(): ClassLikeType { diff --git a/src/Core/Layer/Collector/LayerCollector.php b/src/DefaultBehavior/Layer/LayerCollector.php similarity index 94% rename from src/Core/Layer/Collector/LayerCollector.php rename to src/DefaultBehavior/Layer/LayerCollector.php index 1b56729e..490e2ba5 100644 --- a/src/Core/Layer/Collector/LayerCollector.php +++ b/src/DefaultBehavior/Layer/LayerCollector.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; use function array_key_exists; use function is_string; diff --git a/src/Core/Layer/Collector/MethodCollector.php b/src/DefaultBehavior/Layer/MethodCollector.php similarity index 91% rename from src/Core/Layer/Collector/MethodCollector.php rename to src/DefaultBehavior/Layer/MethodCollector.php index 95e8b151..a8538740 100644 --- a/src/Core/Layer/Collector/MethodCollector.php +++ b/src/DefaultBehavior/Layer/MethodCollector.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\RegexCollector; final class MethodCollector extends RegexCollector { diff --git a/src/Core/Layer/Collector/PhpInternalCollector.php b/src/DefaultBehavior/Layer/PhpInternalCollector.php similarity index 94% rename from src/Core/Layer/Collector/PhpInternalCollector.php rename to src/DefaultBehavior/Layer/PhpInternalCollector.php index 39ccb8e7..95f10b95 100644 --- a/src/Core/Layer/Collector/PhpInternalCollector.php +++ b/src/DefaultBehavior/Layer/PhpInternalCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use JetBrains\PHPStormStub\PhpStormStubsMap; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; @@ -14,7 +14,7 @@ use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -class PhpInternalCollector implements CollectorInterface +final class PhpInternalCollector implements CollectorInterface { public function satisfy(array $config, TokenReferenceInterface $reference): bool { diff --git a/src/Core/Layer/Collector/SuperglobalCollector.php b/src/DefaultBehavior/Layer/SuperglobalCollector.php similarity index 96% rename from src/Core/Layer/Collector/SuperglobalCollector.php rename to src/DefaultBehavior/Layer/SuperglobalCollector.php index f32a42b5..e4a26f44 100644 --- a/src/Core/Layer/Collector/SuperglobalCollector.php +++ b/src/DefaultBehavior/Layer/SuperglobalCollector.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\VariableReference; diff --git a/src/Core/Layer/Collector/TagValueRegexCollector.php b/src/DefaultBehavior/Layer/TagValueRegexCollector.php similarity index 94% rename from src/Core/Layer/Collector/TagValueRegexCollector.php rename to src/DefaultBehavior/Layer/TagValueRegexCollector.php index 0c155fea..a52c4adc 100644 --- a/src/Core/Layer/Collector/TagValueRegexCollector.php +++ b/src/DefaultBehavior/Layer/TagValueRegexCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\TaggedTokenReferenceInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\RegexCollector; final class TagValueRegexCollector extends RegexCollector { diff --git a/src/Core/Layer/Collector/TraitCollector.php b/src/DefaultBehavior/Layer/TraitCollector.php similarity index 52% rename from src/Core/Layer/Collector/TraitCollector.php rename to src/DefaultBehavior/Layer/TraitCollector.php index 14ff7fd6..9d8d7a9b 100644 --- a/src/Core/Layer/Collector/TraitCollector.php +++ b/src/DefaultBehavior/Layer/TraitCollector.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; +use Qossmic\Deptrac\DefaultBehavior\Layer\Helpers\AbstractTypeCollector; -class TraitCollector extends AbstractTypeCollector +final class TraitCollector extends AbstractTypeCollector { protected function getType(): ClassLikeType { diff --git a/src/Core/Layer/Collector/UsesCollector.php b/src/DefaultBehavior/Layer/UsesCollector.php similarity index 70% rename from src/Core/Layer/Collector/UsesCollector.php rename to src/DefaultBehavior/Layer/UsesCollector.php index 7a87d7b3..3bde300a 100644 --- a/src/Core/Layer/Collector/UsesCollector.php +++ b/src/DefaultBehavior/Layer/UsesCollector.php @@ -2,29 +2,24 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Core\Layer\Collector; +namespace Qossmic\Deptrac\DefaultBehavior\Layer; +use Qossmic\Deptrac\Contract\Ast\AstException; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstMapInterface; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; +use Qossmic\Deptrac\Contract\Ast\AstMapExtractorInterface; +use Qossmic\Deptrac\Contract\Ast\CouldNotParseFileException; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstException; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMapExtractor; final class UsesCollector implements CollectorInterface { - private readonly AstMap $astMap; + private AstMapInterface $astMap; - /** - * @throws AstException - */ - public function __construct(private AstMapExtractor $astMapExtractor) - { - $this->astMap = $this->astMapExtractor->extract(); - } + public function __construct(private readonly AstMapExtractorInterface $astMapExtractor) {} public function satisfy(array $config, TokenReferenceInterface $reference): bool { @@ -34,6 +29,11 @@ public function satisfy(array $config, TokenReferenceInterface $reference): bool $traitName = $this->getTraitName($config); + try { + $this->astMap ??= $this->astMapExtractor->extract(); + } catch (AstException $exception) { + throw CouldNotParseFileException::because('Could not build Ast map', $exception); + } foreach ($this->astMap->getClassInherits($reference->getToken()) as $inherit) { if (AstInheritType::USES === $inherit->type && $inherit->classLikeName->equals($traitName)) { return true; diff --git a/src/Supportive/OutputFormatter/BaselineOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/BaselineOutputFormatter.php similarity index 97% rename from src/Supportive/OutputFormatter/BaselineOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/BaselineOutputFormatter.php index cdcab85b..b44cb183 100644 --- a/src/Supportive/OutputFormatter/BaselineOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/BaselineOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Qossmic\Deptrac\Contract\OutputFormatter\BaselineMapperInterface; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInput; @@ -16,9 +16,6 @@ use function ksort; use function sort; -/** - * @internal - */ final class BaselineOutputFormatter implements OutputFormatterInterface { private const DEFAULT_PATH = './deptrac.baseline.yaml'; diff --git a/src/Supportive/OutputFormatter/CodeclimateOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/CodeclimateOutputFormatter.php similarity index 96% rename from src/Supportive/OutputFormatter/CodeclimateOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/CodeclimateOutputFormatter.php index f352a9b4..467c2c2c 100644 --- a/src/Supportive/OutputFormatter/CodeclimateOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/CodeclimateOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Exception; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInput; @@ -13,8 +13,8 @@ use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationCodeclimate; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\ConfigurationCodeclimate; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; use function json_encode; use function json_last_error; @@ -22,9 +22,6 @@ use const JSON_PRETTY_PRINT; -/** - * @internal - */ final class CodeclimateOutputFormatter implements OutputFormatterInterface { /** diff --git a/src/Supportive/OutputFormatter/ConsoleOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/ConsoleOutputFormatter.php similarity index 98% rename from src/Supportive/OutputFormatter/ConsoleOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/ConsoleOutputFormatter.php index d81af631..6c2c2170 100644 --- a/src/Supportive/OutputFormatter/ConsoleOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/ConsoleOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; @@ -15,9 +15,6 @@ use function count; -/** - * @internal - */ final class ConsoleOutputFormatter implements OutputFormatterInterface { public static function getName(): string diff --git a/src/Supportive/OutputFormatter/GithubActionsOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/GithubActionsOutputFormatter.php similarity index 98% rename from src/Supportive/OutputFormatter/GithubActionsOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/GithubActionsOutputFormatter.php index d11593ef..1825156b 100644 --- a/src/Supportive/OutputFormatter/GithubActionsOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/GithubActionsOutputFormatter.php @@ -1,6 +1,6 @@ > $config diff --git a/src/Supportive/OutputFormatter/GraphVizOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/Helpers/GraphVizOutputFormatter.php similarity index 97% rename from src/Supportive/OutputFormatter/GraphVizOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/Helpers/GraphVizOutputFormatter.php index 513bfaa1..254191bc 100644 --- a/src/Supportive/OutputFormatter/GraphVizOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/Helpers/GraphVizOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers; use phpDocumentor\GraphViz\Edge; use phpDocumentor\GraphViz\Exception; @@ -17,8 +17,6 @@ use Qossmic\Deptrac\Contract\Result\RuleInterface; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationGraphViz; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; use function sys_get_temp_dir; use function tempnam; diff --git a/src/Supportive/OutputFormatter/JUnitOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/JUnitOutputFormatter.php similarity index 99% rename from src/Supportive/OutputFormatter/JUnitOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/JUnitOutputFormatter.php index 608137f4..385225b7 100644 --- a/src/Supportive/OutputFormatter/JUnitOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/JUnitOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use DOMAttr; use DOMDocument; @@ -18,9 +18,6 @@ use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -/** - * @internal - */ final class JUnitOutputFormatter implements OutputFormatterInterface { private const DEFAULT_PATH = './junit-report.xml'; diff --git a/src/Supportive/OutputFormatter/JsonOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/JsonOutputFormatter.php similarity index 98% rename from src/Supportive/OutputFormatter/JsonOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/JsonOutputFormatter.php index 46faa736..1f0a228f 100644 --- a/src/Supportive/OutputFormatter/JsonOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/JsonOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Exception; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInput; @@ -19,9 +19,6 @@ use const JSON_PRETTY_PRINT; -/** - * @internal - */ final class JsonOutputFormatter implements OutputFormatterInterface { public static function getName(): string diff --git a/src/Supportive/OutputFormatter/MermaidJSOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/MermaidJSOutputFormatter.php similarity index 96% rename from src/Supportive/OutputFormatter/MermaidJSOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/MermaidJSOutputFormatter.php index 442fe4b7..7cc33b59 100644 --- a/src/Supportive/OutputFormatter/MermaidJSOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/MermaidJSOutputFormatter.php @@ -2,17 +2,14 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInput; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInterface; use Qossmic\Deptrac\Contract\OutputFormatter\OutputInterface; use Qossmic\Deptrac\Contract\Result\OutputResult; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; -/** - * @internal - */ final class MermaidJSOutputFormatter implements OutputFormatterInterface { /** @var array{direction: string, groups: array} */ diff --git a/src/Supportive/OutputFormatter/TableOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/TableOutputFormatter.php similarity index 99% rename from src/Supportive/OutputFormatter/TableOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/TableOutputFormatter.php index ce408129..904ebcca 100644 --- a/src/Supportive/OutputFormatter/TableOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/TableOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; use Qossmic\Deptrac\Contract\OutputFormatter\OutputFormatterInput; diff --git a/src/Supportive/OutputFormatter/XMLOutputFormatter.php b/src/DefaultBehavior/OutputFormatter/XMLOutputFormatter.php similarity index 97% rename from src/Supportive/OutputFormatter/XMLOutputFormatter.php rename to src/DefaultBehavior/OutputFormatter/XMLOutputFormatter.php index 64cf6864..10f8c30b 100644 --- a/src/Supportive/OutputFormatter/XMLOutputFormatter.php +++ b/src/DefaultBehavior/OutputFormatter/XMLOutputFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Qossmic\Deptrac\Supportive\OutputFormatter; +namespace Qossmic\Deptrac\DefaultBehavior\OutputFormatter; use DOMAttr; use DOMDocument; @@ -15,9 +15,6 @@ use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Violation; -/** - * @internal - */ final class XMLOutputFormatter implements OutputFormatterInterface { private const DEFAULT_PATH = './deptrac-report.xml'; diff --git a/src/Supportive/Console/Command/AnalyseCommand.php b/src/Supportive/Console/Command/AnalyseCommand.php index 7378191f..1d4ede7c 100644 --- a/src/Supportive/Console/Command/AnalyseCommand.php +++ b/src/Supportive/Console/Command/AnalyseCommand.php @@ -4,14 +4,14 @@ namespace Qossmic\Deptrac\Supportive\Console\Command; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GithubActionsOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\TableOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Env; use Qossmic\Deptrac\Supportive\Console\Subscriber\ConsoleSubscriber; use Qossmic\Deptrac\Supportive\Console\Subscriber\ProgressSubscriber; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; use Qossmic\Deptrac\Supportive\OutputFormatter\FormatterProvider; -use Qossmic\Deptrac\Supportive\OutputFormatter\GithubActionsOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\TableOutputFormatter; use Qossmic\Deptrac\Supportive\Time\Stopwatch; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; diff --git a/tests/Contract/Analyser/EventHelperTest.php b/tests/Contract/Analyser/EventHelperTest.php index 9d42c2b6..e830ce72 100644 --- a/tests/Contract/Analyser/EventHelperTest.php +++ b/tests/Contract/Analyser/EventHelperTest.php @@ -7,8 +7,8 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Analyser\EventHelper; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; use Qossmic\Deptrac\Contract\OutputFormatter\BaselineMapperInterface; +use Qossmic\Deptrac\Core\Layer\LayerProvider; final class EventHelperTest extends TestCase { diff --git a/tests/Core/Analyser/EventHandler/AllowDependencyHandlerTest.php b/tests/Core/Analyser/EventHandler/AllowDependencyHandlerTest.php index c491f580..ddfbfd66 100644 --- a/tests/Core/Analyser/EventHandler/AllowDependencyHandlerTest.php +++ b/tests/Core/Analyser/EventHandler/AllowDependencyHandlerTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; -use Qossmic\Deptrac\Core\Analyser\EventHandler\AllowDependencyHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\AllowDependencyHandler; class AllowDependencyHandlerTest extends TestCase { diff --git a/tests/Core/Analyser/EventHandler/DependsOnInternalTokenTest.php b/tests/Core/Analyser/EventHandler/DependsOnInternalTokenTest.php index aee15025..03c41e25 100644 --- a/tests/Core/Analyser/EventHandler/DependsOnInternalTokenTest.php +++ b/tests/Core/Analyser/EventHandler/DependsOnInternalTokenTest.php @@ -14,9 +14,9 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; -use Qossmic\Deptrac\Core\Analyser\EventHandler\DependsOnInternalToken; -use Qossmic\Deptrac\Core\Dependency\Dependency; +use Qossmic\Deptrac\Core\Layer\LayerProvider; +use Qossmic\Deptrac\DefaultBehavior\Analyser\DependsOnInternalToken; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; use Qossmic\Deptrac\Supportive\OutputFormatter\YamlBaselineMapper; final class DependsOnInternalTokenTest extends TestCase diff --git a/tests/Core/Analyser/EventHandler/DependsOnPrivateLayerTest.php b/tests/Core/Analyser/EventHandler/DependsOnPrivateLayerTest.php index 1a09dca7..c0e613ac 100644 --- a/tests/Core/Analyser/EventHandler/DependsOnPrivateLayerTest.php +++ b/tests/Core/Analyser/EventHandler/DependsOnPrivateLayerTest.php @@ -14,10 +14,10 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; -use Qossmic\Deptrac\Contract\Layer\LayerProvider; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Analyser\EventHandler\DependsOnPrivateLayer; -use Qossmic\Deptrac\Core\Dependency\Dependency; +use Qossmic\Deptrac\Core\Layer\LayerProvider; +use Qossmic\Deptrac\DefaultBehavior\Analyser\DependsOnPrivateLayer; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; use Qossmic\Deptrac\Supportive\OutputFormatter\YamlBaselineMapper; final class DependsOnPrivateLayerTest extends TestCase diff --git a/tests/Core/Analyser/EventHandler/MatchingLayersHandlerTest.php b/tests/Core/Analyser/EventHandler/MatchingLayersHandlerTest.php index d22323ea..285fda8e 100644 --- a/tests/Core/Analyser/EventHandler/MatchingLayersHandlerTest.php +++ b/tests/Core/Analyser/EventHandler/MatchingLayersHandlerTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; -use Qossmic\Deptrac\Core\Analyser\EventHandler\MatchingLayersHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\MatchingLayersHandler; class MatchingLayersHandlerTest extends TestCase { diff --git a/tests/Core/Analyser/EventHandler/UncoveredDependentHandlerTest.php b/tests/Core/Analyser/EventHandler/UncoveredDependentHandlerTest.php index 8bc72cf5..5a91d01b 100644 --- a/tests/Core/Analyser/EventHandler/UncoveredDependentHandlerTest.php +++ b/tests/Core/Analyser/EventHandler/UncoveredDependentHandlerTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Analyser\ProcessEvent; -use Qossmic\Deptrac\Core\Analyser\EventHandler\UncoveredDependentHandler; +use Qossmic\Deptrac\DefaultBehavior\Analyser\UncoveredDependentHandler; class UncoveredDependentHandlerTest extends TestCase { diff --git a/tests/Core/Analyser/EventHandler/UnmatchedSkippedViolationsTest.php b/tests/Core/Analyser/EventHandler/UnmatchedSkippedViolationsTest.php index e3fda03d..70fb92e9 100644 --- a/tests/Core/Analyser/EventHandler/UnmatchedSkippedViolationsTest.php +++ b/tests/Core/Analyser/EventHandler/UnmatchedSkippedViolationsTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Analyser\PostProcessEvent; -use Qossmic\Deptrac\Core\Analyser\EventHandler\UnmatchedSkippedViolations; +use Qossmic\Deptrac\DefaultBehavior\Analyser\UnmatchedSkippedViolations; class UnmatchedSkippedViolationsTest extends TestCase { @@ -16,6 +16,6 @@ public function testGetSubscribedEvents(): void self::assertCount(1, $subscribedEvents); self::assertArrayHasKey(PostProcessEvent::class, $subscribedEvents); - self::assertSame(['handleUnmatchedSkipped'], $subscribedEvents[PostProcessEvent::class]); + self::assertSame(['invoke'], $subscribedEvents[PostProcessEvent::class]); } } diff --git a/tests/Core/Ast/AstMapFlattenGeneratorTest.php b/tests/Core/Ast/AstMapFlattenGeneratorTest.php index 1814859b..86eccd33 100644 --- a/tests/Core/Ast/AstMapFlattenGeneratorTest.php +++ b/tests/Core/Ast/AstMapFlattenGeneratorTest.php @@ -17,11 +17,11 @@ use Qossmic\Deptrac\Contract\Ast\PostCreateAstMapEvent; use Qossmic\Deptrac\Contract\Ast\PreCreateAstMapEvent; use Qossmic\Deptrac\Core\Ast\AstLoader; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\InterfaceExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\InterfaceExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\Stopwatch\Stopwatch; diff --git a/tests/Core/Ast/AstMapGeneratorTest.php b/tests/Core/Ast/AstMapGeneratorTest.php index 726c6edb..f906ff54 100644 --- a/tests/Core/Ast/AstMapGeneratorTest.php +++ b/tests/Core/Ast/AstMapGeneratorTest.php @@ -14,14 +14,14 @@ use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\AstLoader; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\AnonymousClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassConstantExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\GroupUseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\TraitUseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\UseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\AnonymousClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassConstantExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\GroupUseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\TraitUseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\UseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; use Symfony\Component\EventDispatcher\EventDispatcher; use Tests\Qossmic\Deptrac\Core\Ast\Fixtures\BasicDependency\BasicDependencyClassB; use Tests\Qossmic\Deptrac\Core\Ast\Fixtures\BasicDependency\BasicDependencyClassC; diff --git a/tests/Core/Ast/Parser/AnnotationReferenceExtractorTest.php b/tests/Core/Ast/Parser/AnnotationReferenceExtractorTest.php index 426af052..0bc8f697 100644 --- a/tests/Core/Ast/Parser/AnnotationReferenceExtractorTest.php +++ b/tests/Core/Ast/Parser/AnnotationReferenceExtractorTest.php @@ -9,12 +9,12 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassMethodExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\NewExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\PropertyExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\VariableExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassMethodExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\NewExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\PropertyExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\VariableExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; final class AnnotationReferenceExtractorTest extends TestCase { diff --git a/tests/Core/Ast/Parser/AnonymousClassExtractorTest.php b/tests/Core/Ast/Parser/AnonymousClassExtractorTest.php index 86d14b8a..ab30f6fd 100644 --- a/tests/Core/Ast/Parser/AnonymousClassExtractorTest.php +++ b/tests/Core/Ast/Parser/AnonymousClassExtractorTest.php @@ -10,8 +10,8 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\AnonymousClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\AnonymousClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; final class AnonymousClassExtractorTest extends TestCase { diff --git a/tests/Core/Ast/Parser/ClassConstantExtractorTest.php b/tests/Core/Ast/Parser/ClassConstantExtractorTest.php index e91af8c4..20863bf1 100644 --- a/tests/Core/Ast/Parser/ClassConstantExtractorTest.php +++ b/tests/Core/Ast/Parser/ClassConstantExtractorTest.php @@ -10,8 +10,8 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassConstantExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassConstantExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; final class ClassConstantExtractorTest extends TestCase { diff --git a/tests/Core/Ast/Parser/ClassDocBlockExtractorTest.php b/tests/Core/Ast/Parser/ClassDocBlockExtractorTest.php index ce8e07f0..4b25be49 100644 --- a/tests/Core/Ast/Parser/ClassDocBlockExtractorTest.php +++ b/tests/Core/Ast/Parser/ClassDocBlockExtractorTest.php @@ -10,9 +10,9 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; final class ClassDocBlockExtractorTest extends TestCase { diff --git a/tests/Core/Ast/Parser/FunctionLikeExtractorTest.php b/tests/Core/Ast/Parser/FunctionLikeExtractorTest.php index 32b21afa..a9d2e232 100644 --- a/tests/Core/Ast/Parser/FunctionLikeExtractorTest.php +++ b/tests/Core/Ast/Parser/FunctionLikeExtractorTest.php @@ -12,9 +12,9 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyToken; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\FunctionLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\FunctionLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; final class FunctionLikeExtractorTest extends TestCase { diff --git a/tests/Core/Ast/Parser/NikicTypeResolverTest.php b/tests/Core/Ast/Parser/NikicTypeResolverTest.php index 5ab04ed2..0c0549fb 100644 --- a/tests/Core/Ast/Parser/NikicTypeResolverTest.php +++ b/tests/Core/Ast/Parser/NikicTypeResolverTest.php @@ -10,7 +10,7 @@ use PHPStan\PhpDocParser\Parser\TypeParser; use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\TypeScope; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; final class NikicTypeResolverTest extends TestCase { diff --git a/tests/Core/Ast/Parser/ParserTest.php b/tests/Core/Ast/Parser/ParserTest.php index 550ff04d..fcf1ea8c 100644 --- a/tests/Core/Ast/Parser/ParserTest.php +++ b/tests/Core/Ast/Parser/ParserTest.php @@ -10,10 +10,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\ParserInterface; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\UseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\UseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; use stdClass; use TypeError; diff --git a/tests/Core/Dependency/DependencyListTest.php b/tests/Core/Dependency/DependencyListTest.php index c90083d3..29156a9a 100644 --- a/tests/Core/Dependency/DependencyListTest.php +++ b/tests/Core/Dependency/DependencyListTest.php @@ -11,9 +11,9 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\DependencyList; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class DependencyListTest extends TestCase { diff --git a/tests/Core/Dependency/DependencyResolverTest.php b/tests/Core/Dependency/DependencyResolverTest.php index 673f3a91..0c55b6a7 100644 --- a/tests/Core/Dependency/DependencyResolverTest.php +++ b/tests/Core/Dependency/DependencyResolverTest.php @@ -6,28 +6,34 @@ use PHPUnit\Framework\TestCase; use Psr\Container\ContainerInterface; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstInherit; +use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; +use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; +use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; +use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; use Qossmic\Deptrac\Contract\Config\EmitterType; +use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; use Qossmic\Deptrac\Contract\Dependency\PostEmitEvent; use Qossmic\Deptrac\Contract\Dependency\PostFlattenEvent; use Qossmic\Deptrac\Contract\Dependency\PreEmitEvent; use Qossmic\Deptrac\Contract\Dependency\PreFlattenEvent; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Core\Ast\AstMap; +use Qossmic\Deptrac\Core\Dependency\DependencyList; use Qossmic\Deptrac\Core\Dependency\DependencyResolver; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassSuperglobalDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FileDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionSuperglobalDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\Emitter\UsesDependencyEmitter; -use Qossmic\Deptrac\Core\Dependency\InheritanceFlattener; +use Qossmic\Deptrac\Core\Dependency\InheritDependency; use Qossmic\Deptrac\Core\Dependency\InvalidEmitterConfigurationException; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FileDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\UsesDependencyEmitter; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\EventDispatcher\EventDispatcherInterface; final class DependencyResolverTest extends TestCase { private EventDispatcherInterface $dispatcher; - private InheritanceFlattener $flattener; private ContainerInterface $container; protected function setUp(): void @@ -36,8 +42,6 @@ protected function setUp(): void $this->dispatcher = $this->createMock(EventDispatcherInterface::class); - $this->flattener = $this->createMock(InheritanceFlattener::class); - $this->container = new ContainerBuilder(); $this->container->set(EmitterType::CLASS_TOKEN->value, new ClassDependencyEmitter()); $this->container->set(EmitterType::CLASS_SUPERGLOBAL_TOKEN->value, new ClassSuperglobalDependencyEmitter()); @@ -59,14 +63,12 @@ public function testResolveWithDefaultEmitters(): void new PreFlattenEvent(), new PostFlattenEvent() ); - $this->flattener->expects(self::once())->method('flattenDependencies'); $resolver = new DependencyResolver( ['types' => [ EmitterType::CLASS_TOKEN->value, EmitterType::USE_TOKEN->value, ]], - $this->flattener, $this->container, $this->dispatcher ); @@ -84,11 +86,9 @@ public function testResolveWithCustomEmitters(): void new PreFlattenEvent(), new PostFlattenEvent() ); - $this->flattener->expects(self::once())->method('flattenDependencies'); $resolver = new DependencyResolver( ['types' => [EmitterType::FUNCTION_TOKEN->value]], - $this->flattener, $this->container, $this->dispatcher ); @@ -101,11 +101,9 @@ public function testResolveWithInvalidEmitterType(): void $astMap = new AstMap([]); $this->dispatcher->expects(self::never())->method('dispatch'); - $this->flattener->expects(self::never())->method('flattenDependencies'); $resolver = new DependencyResolver( ['types' => ['invalid']], - $this->flattener, $this->container, $this->dispatcher ); @@ -114,4 +112,82 @@ public function testResolveWithInvalidEmitterType(): void $resolver->resolve($astMap); } + + public function testFlattenDependencies(): void + { + $astMap = $this->createMock(AstMap::class); + + $astMap->method('getClassLikeReferences')->willReturn([ + $this->getAstClassReference('classA'), + $this->getAstClassReference('classB'), + $this->getAstClassReference('classBaum'), + $this->getAstClassReference('classWeihnachtsbaum'), + $this->getAstClassReference('classGeschmückterWeihnachtsbaum'), + ]); + + $dependencyResult = new DependencyList(); + $dependencyResult->addDependency($this->getDependency('classA')); + $dependencyResult->addDependency($this->getDependency('classB')); + $dependencyResult->addDependency($this->getDependency('classBaum')); + $dependencyResult->addDependency($this->getDependency('classWeihnachtsbaumsA')); + + $astMap->method('getClassInherits')->willReturnOnConsecutiveCalls( + // classA + [], + // classB + [], + // classBaum, + [], + // classWeihnachtsbaum + [ + new AstInherit( + ClassLikeToken::fromFQCN('classBaum'), new FileOccurrence('classWeihnachtsbaum.php', 3), + AstInheritType::USES + ), + ], + // classGeschmückterWeihnachtsbaum + [ + (new AstInherit( + ClassLikeToken::fromFQCN('classBaum'), new FileOccurrence('classGeschmückterWeihnachtsbaum.php', 3), + AstInheritType::EXTENDS + )) + ->replacePath([ + new AstInherit( + ClassLikeToken::fromFQCN('classWeihnachtsbaum'), + new FileOccurrence('classBaum.php', 3), + AstInheritType::USES + ), + ]), + ] + ); + + DependencyResolver::flattenDependencies($astMap, $dependencyResult); + + $inheritDeps = array_filter( + $dependencyResult->getDependenciesAndInheritDependencies(), + static function ($v) { + return $v instanceof InheritDependency; + } + ); + + self::assertCount(2, $inheritDeps); + } + + private function getAstClassReference($className) + { + $classLikeToken = ClassLikeToken::fromFQCN($className); + $astClass = new ClassLikeReference($classLikeToken); + self::assertSame($classLikeToken, $astClass->getToken()); + + return $astClass; + } + + private function getDependency($className) + { + $dep = $this->createMock(DependencyInterface::class); + $dep->method('getDepender')->willReturn(ClassLikeToken::fromFQCN($className)); + $dep->method('getDependent')->willReturn(ClassLikeToken::fromFQCN($className.'_b')); + + return $dep; + } } diff --git a/tests/Core/Dependency/DependencyTest.php b/tests/Core/Dependency/DependencyTest.php index daa4a3e8..c6d84f65 100644 --- a/tests/Core/Dependency/DependencyTest.php +++ b/tests/Core/Dependency/DependencyTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; -use Qossmic\Deptrac\Core\Dependency\Dependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class DependencyTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/ClassDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/ClassDependencyEmitterTest.php index 565e18ab..98f71353 100644 --- a/tests/Core/Dependency/Emitter/ClassDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/ClassDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassDependencyEmitter; final class ClassDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitterTest.php index 7b01e409..1013b333 100644 --- a/tests/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/ClassSuperglobalDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\ClassSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\ClassSuperglobalDependencyEmitter; final class ClassSuperglobalDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/EmitterTrait.php b/tests/Core/Dependency/Emitter/EmitterTrait.php index 1ccd1198..ce181df7 100644 --- a/tests/Core/Dependency/Emitter/EmitterTrait.php +++ b/tests/Core/Dependency/Emitter/EmitterTrait.php @@ -6,25 +6,25 @@ use PhpParser\Lexer; use PhpParser\ParserFactory; +use Qossmic\Deptrac\Contract\Dependency\DependencyEmitterInterface; use Qossmic\Deptrac\Contract\Dependency\DependencyInterface; use Qossmic\Deptrac\Core\Ast\AstLoader; use Qossmic\Deptrac\Core\Ast\Parser\Cache\AstFileReferenceInMemoryCache; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\AnonymousClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\ClassExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\FunctionCallExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\FunctionLikeExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\InstanceofExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\NewExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\PropertyExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\StaticCallExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\StaticPropertyFetchExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\TraitUseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\UseExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\Extractors\VariableExtractor; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicTypeResolver; +use Qossmic\Deptrac\Core\Ast\Parser\NikicTypeResolver; use Qossmic\Deptrac\Core\Dependency\DependencyList; -use Qossmic\Deptrac\Core\Dependency\Emitter\DependencyEmitterInterface; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\AnonymousClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\ClassExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\FunctionCallExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\FunctionLikeExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\InstanceofExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\NewExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\PropertyExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\StaticCallExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\StaticPropertyFetchExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\TraitUseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\UseExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Extractors\VariableExtractor; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; use Symfony\Component\EventDispatcher\EventDispatcher; trait EmitterTrait diff --git a/tests/Core/Dependency/Emitter/FQDNIndexNodeTest.php b/tests/Core/Dependency/Emitter/FQDNIndexNodeTest.php index 1c2894dc..af05bfcc 100644 --- a/tests/Core/Dependency/Emitter/FQDNIndexNodeTest.php +++ b/tests/Core/Dependency/Emitter/FQDNIndexNodeTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\FQDNIndexNode; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\FQDNIndexNode; use function array_slice; use function explode; diff --git a/tests/Core/Dependency/Emitter/FileDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/FileDependencyEmitterTest.php index 6e9db655..6ec744de 100644 --- a/tests/Core/Dependency/Emitter/FileDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/FileDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\FileDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FileDependencyEmitter; final class FileDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/FunctionCallDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/FunctionCallDependencyEmitterTest.php index b6c6d548..e0025d34 100644 --- a/tests/Core/Dependency/Emitter/FunctionCallDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/FunctionCallDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionCallDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionCallDependencyEmitter; final class FunctionCallDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/FunctionDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/FunctionDependencyEmitterTest.php index 34ad7a84..d4d3c54f 100644 --- a/tests/Core/Dependency/Emitter/FunctionDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/FunctionDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionDependencyEmitter; final class FunctionDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitterTest.php index 3863fd23..1f3f6b4b 100644 --- a/tests/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/FunctionSuperglobalDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\FunctionSuperglobalDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\FunctionSuperglobalDependencyEmitter; final class FunctionSuperglobalDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/Emitter/UsesDependencyEmitterTest.php b/tests/Core/Dependency/Emitter/UsesDependencyEmitterTest.php index 888bf39e..a3220b26 100644 --- a/tests/Core/Dependency/Emitter/UsesDependencyEmitterTest.php +++ b/tests/Core/Dependency/Emitter/UsesDependencyEmitterTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Core\Dependency\Emitter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Dependency\Emitter\UsesDependencyEmitter; +use Qossmic\Deptrac\DefaultBehavior\Dependency\UsesDependencyEmitter; final class UsesDependencyEmitterTest extends TestCase { diff --git a/tests/Core/Dependency/InheritDependencyTest.php b/tests/Core/Dependency/InheritDependencyTest.php index b6932bb9..e70b0ddd 100644 --- a/tests/Core/Dependency/InheritDependencyTest.php +++ b/tests/Core/Dependency/InheritDependencyTest.php @@ -11,8 +11,8 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyContext; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; use Qossmic\Deptrac\Contract\Ast\AstMap\FileOccurrence; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; final class InheritDependencyTest extends TestCase { diff --git a/tests/Core/Dependency/InheritanceFlattenerTest.php b/tests/Core/Dependency/InheritanceFlattenerTest.php deleted file mode 100644 index 32376368..00000000 --- a/tests/Core/Dependency/InheritanceFlattenerTest.php +++ /dev/null @@ -1,98 +0,0 @@ -getToken()); - - return $astClass; - } - - private function getDependency($className) - { - $dep = $this->createMock(Dependency::class); - $dep->method('getDepender')->willReturn(ClassLikeToken::fromFQCN($className)); - $dep->method('getDependent')->willReturn(ClassLikeToken::fromFQCN($className.'_b')); - - return $dep; - } - - public function testFlattenDependencies(): void - { - $astMap = $this->createMock(AstMap::class); - - $astMap->method('getClassLikeReferences')->willReturn([ - $this->getAstClassReference('classA'), - $this->getAstClassReference('classB'), - $this->getAstClassReference('classBaum'), - $this->getAstClassReference('classWeihnachtsbaum'), - $this->getAstClassReference('classGeschmückterWeihnachtsbaum'), - ]); - - $dependencyResult = new DependencyList(); - $dependencyResult->addDependency($this->getDependency('classA')); - $dependencyResult->addDependency($this->getDependency('classB')); - $dependencyResult->addDependency($this->getDependency('classBaum')); - $dependencyResult->addDependency($this->getDependency('classWeihnachtsbaumsA')); - - $astMap->method('getClassInherits')->willReturnOnConsecutiveCalls( - // classA - [], - // classB - [], - // classBaum, - [], - // classWeihnachtsbaum - [ - new AstInherit( - ClassLikeToken::fromFQCN('classBaum'), new FileOccurrence('classWeihnachtsbaum.php', 3), - AstInheritType::USES - ), - ], - // classGeschmückterWeihnachtsbaum - [ - (new AstInherit( - ClassLikeToken::fromFQCN('classBaum'), new FileOccurrence('classGeschmückterWeihnachtsbaum.php', 3), - AstInheritType::EXTENDS - )) - ->replacePath([ - new AstInherit( - ClassLikeToken::fromFQCN('classWeihnachtsbaum'), - new FileOccurrence('classBaum.php', 3), - AstInheritType::USES - ), - ]), - ] - ); - - (new InheritanceFlattener())->flattenDependencies($astMap, $dependencyResult); - - $inheritDeps = array_filter( - $dependencyResult->getDependenciesAndInheritDependencies(), - static function ($v) { - return $v instanceof InheritDependency; - } - ); - - self::assertCount(2, $inheritDeps); - } -} diff --git a/tests/Core/Dependency/TokenResolverTest.php b/tests/Core/Dependency/TokenResolverTest.php index 95a76c70..45bdf107 100644 --- a/tests/Core/Dependency/TokenResolverTest.php +++ b/tests/Core/Dependency/TokenResolverTest.php @@ -13,7 +13,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; use Qossmic\Deptrac\Contract\Ast\AstMap\SuperGlobalToken; use Qossmic\Deptrac\Contract\Ast\AstMap\VariableReference; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Dependency\TokenResolver; final class TokenResolverTest extends TestCase diff --git a/tests/Core/Layer/Collector/AttributeCollectorTest.php b/tests/Core/Layer/Collector/AttributeCollectorTest.php index 56c43472..0b3b8f56 100644 --- a/tests/Core/Layer/Collector/AttributeCollectorTest.php +++ b/tests/Core/Layer/Collector/AttributeCollectorTest.php @@ -7,8 +7,8 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\DependencyType; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; -use Qossmic\Deptrac\Core\Layer\Collector\AttributeCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\AttributeCollector; final class AttributeCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/BoolCollectorTest.php b/tests/Core/Layer/Collector/BoolCollectorTest.php index 9ddaea7b..3d5766b6 100644 --- a/tests/Core/Layer/Collector/BoolCollectorTest.php +++ b/tests/Core/Layer/Collector/BoolCollectorTest.php @@ -7,11 +7,11 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; +use Qossmic\Deptrac\Contract\Layer\Collectable; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\BoolCollector; -use Qossmic\Deptrac\Core\Layer\Collector\Collectable; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorResolverInterface; +use Qossmic\Deptrac\DefaultBehavior\Layer\BoolCollector; final class BoolCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ClassCollectorTest.php b/tests/Core/Layer/Collector/ClassCollectorTest.php index 419aa658..6de13c78 100644 --- a/tests/Core/Layer/Collector/ClassCollectorTest.php +++ b/tests/Core/Layer/Collector/ClassCollectorTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\ClassCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassCollector; final class ClassCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ClassLikeCollectorTest.php b/tests/Core/Layer/Collector/ClassLikeCollectorTest.php index f3260801..d180cc73 100644 --- a/tests/Core/Layer/Collector/ClassLikeCollectorTest.php +++ b/tests/Core/Layer/Collector/ClassLikeCollectorTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\ClassLikeCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassLikeCollector; final class ClassLikeCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ClassNameRegexCollectorTest.php b/tests/Core/Layer/Collector/ClassNameRegexCollectorTest.php index 5adf25a8..d26212d1 100644 --- a/tests/Core/Layer/Collector/ClassNameRegexCollectorTest.php +++ b/tests/Core/Layer/Collector/ClassNameRegexCollectorTest.php @@ -8,7 +8,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\ClassNameRegexCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ClassNameRegexCollector; final class ClassNameRegexCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ComposerCollectorTest.php b/tests/Core/Layer/Collector/ComposerCollectorTest.php index 0cd2e36d..42070ddc 100644 --- a/tests/Core/Layer/Collector/ComposerCollectorTest.php +++ b/tests/Core/Layer/Collector/ComposerCollectorTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\ComposerCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\ComposerCollector; final class ComposerCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/DirectoryCollectorTest.php b/tests/Core/Layer/Collector/DirectoryCollectorTest.php index 8298ef23..b11e23ab 100644 --- a/tests/Core/Layer/Collector/DirectoryCollectorTest.php +++ b/tests/Core/Layer/Collector/DirectoryCollectorTest.php @@ -6,8 +6,8 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; -use Qossmic\Deptrac\Core\Layer\Collector\DirectoryCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\DirectoryCollector; final class DirectoryCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ExtendsCollectorTest.php b/tests/Core/Layer/Collector/ExtendsCollectorTest.php index fcc87830..ee8e47ad 100644 --- a/tests/Core/Layer/Collector/ExtendsCollectorTest.php +++ b/tests/Core/Layer/Collector/ExtendsCollectorTest.php @@ -7,10 +7,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; -use Qossmic\Deptrac\Core\Layer\Collector\ExtendsCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\ExtendsCollector; final class ExtendsCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/FunctionNameCollectorTest.php b/tests/Core/Layer/Collector/FunctionNameCollectorTest.php index e91e2f9d..230b70ef 100644 --- a/tests/Core/Layer/Collector/FunctionNameCollectorTest.php +++ b/tests/Core/Layer/Collector/FunctionNameCollectorTest.php @@ -8,7 +8,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\FunctionNameCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\FunctionNameCollector; final class FunctionNameCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/GlobCollectorTest.php b/tests/Core/Layer/Collector/GlobCollectorTest.php index a8b93a5f..02e64cc4 100644 --- a/tests/Core/Layer/Collector/GlobCollectorTest.php +++ b/tests/Core/Layer/Collector/GlobCollectorTest.php @@ -5,8 +5,8 @@ namespace Tests\Qossmic\Deptrac\Core\Layer\Collector; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; -use Qossmic\Deptrac\Core\Layer\Collector\GlobCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\GlobCollector; final class GlobCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/ImplementsCollectorTest.php b/tests/Core/Layer/Collector/ImplementsCollectorTest.php index 2b90962a..498a3063 100644 --- a/tests/Core/Layer/Collector/ImplementsCollectorTest.php +++ b/tests/Core/Layer/Collector/ImplementsCollectorTest.php @@ -7,10 +7,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; -use Qossmic\Deptrac\Core\Layer\Collector\ImplementsCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\ImplementsCollector; final class ImplementsCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/InheritanceLevelCollectorTest.php b/tests/Core/Layer/Collector/InheritanceLevelCollectorTest.php index 359c088b..79157855 100644 --- a/tests/Core/Layer/Collector/InheritanceLevelCollectorTest.php +++ b/tests/Core/Layer/Collector/InheritanceLevelCollectorTest.php @@ -8,9 +8,9 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\AstInherit; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; -use Qossmic\Deptrac\Core\Layer\Collector\InheritanceLevelCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\InheritanceLevelCollector; final class InheritanceLevelCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/InheritsCollectorTest.php b/tests/Core/Layer/Collector/InheritsCollectorTest.php index d47c6b99..5d33c0ed 100644 --- a/tests/Core/Layer/Collector/InheritsCollectorTest.php +++ b/tests/Core/Layer/Collector/InheritsCollectorTest.php @@ -7,10 +7,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; -use Qossmic\Deptrac\Core\Layer\Collector\InheritsCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\InheritsCollector; final class InheritsCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/InterfaceCollectorTest.php b/tests/Core/Layer/Collector/InterfaceCollectorTest.php index 3a3342de..ff940130 100644 --- a/tests/Core/Layer/Collector/InterfaceCollectorTest.php +++ b/tests/Core/Layer/Collector/InterfaceCollectorTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\InterfaceCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\InterfaceCollector; final class InterfaceCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/LayerCollectorTest.php b/tests/Core/Layer/Collector/LayerCollectorTest.php index 2672174a..4f0f6037 100644 --- a/tests/Core/Layer/Collector/LayerCollectorTest.php +++ b/tests/Core/Layer/Collector/LayerCollectorTest.php @@ -9,8 +9,8 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\LayerCollector; -use Qossmic\Deptrac\Core\Layer\LayerResolverInterface; +use Qossmic\Deptrac\Contract\Layer\LayerResolverInterface; +use Qossmic\Deptrac\DefaultBehavior\Layer\LayerCollector; final class LayerCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/MethodCollectorTest.php b/tests/Core/Layer/Collector/MethodCollectorTest.php index 5d034c31..08f37a3f 100644 --- a/tests/Core/Layer/Collector/MethodCollectorTest.php +++ b/tests/Core/Layer/Collector/MethodCollectorTest.php @@ -8,8 +8,8 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; -use Qossmic\Deptrac\Core\Layer\Collector\MethodCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Layer\MethodCollector; final class MethodCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/PHPInternalCollectorTest.php b/tests/Core/Layer/Collector/PHPInternalCollectorTest.php index 9cfadb22..ea1518fa 100644 --- a/tests/Core/Layer/Collector/PHPInternalCollectorTest.php +++ b/tests/Core/Layer/Collector/PHPInternalCollectorTest.php @@ -10,7 +10,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionReference; use Qossmic\Deptrac\Contract\Ast\AstMap\FunctionToken; use Qossmic\Deptrac\Contract\Ast\AstMap\TokenReferenceInterface; -use Qossmic\Deptrac\Core\Layer\Collector\PhpInternalCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\PhpInternalCollector; final class PHPInternalCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/SuperglobalCollectorTest.php b/tests/Core/Layer/Collector/SuperglobalCollectorTest.php index 75c4da22..2076c5ac 100644 --- a/tests/Core/Layer/Collector/SuperglobalCollectorTest.php +++ b/tests/Core/Layer/Collector/SuperglobalCollectorTest.php @@ -8,7 +8,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\SuperGlobalToken; use Qossmic\Deptrac\Contract\Ast\AstMap\VariableReference; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\SuperglobalCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\SuperglobalCollector; final class SuperglobalCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/TagValueRegexCollectorTest.php b/tests/Core/Layer/Collector/TagValueRegexCollectorTest.php index 7ba37dc7..8f9226d9 100644 --- a/tests/Core/Layer/Collector/TagValueRegexCollectorTest.php +++ b/tests/Core/Layer/Collector/TagValueRegexCollectorTest.php @@ -10,7 +10,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Config\Collector\TagValueRegexConfig; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\TagValueRegexCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\TagValueRegexCollector; final class TagValueRegexCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/TraitCollectorTest.php b/tests/Core/Layer/Collector/TraitCollectorTest.php index be758612..22145503 100644 --- a/tests/Core/Layer/Collector/TraitCollectorTest.php +++ b/tests/Core/Layer/Collector/TraitCollectorTest.php @@ -9,7 +9,7 @@ use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeType; use Qossmic\Deptrac\Contract\Layer\InvalidCollectorDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\TraitCollector; +use Qossmic\Deptrac\DefaultBehavior\Layer\TraitCollector; final class TraitCollectorTest extends TestCase { diff --git a/tests/Core/Layer/Collector/UsesCollectorTest.php b/tests/Core/Layer/Collector/UsesCollectorTest.php index 096b1b5a..1ed25c74 100644 --- a/tests/Core/Layer/Collector/UsesCollectorTest.php +++ b/tests/Core/Layer/Collector/UsesCollectorTest.php @@ -7,10 +7,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\AstInheritType; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; -use Qossmic\Deptrac\Core\Ast\AstMap\AstMap; -use Qossmic\Deptrac\Core\Ast\AstMap\FileReferenceBuilder; +use Qossmic\Deptrac\Core\Ast\AstMap; use Qossmic\Deptrac\Core\Ast\AstMapExtractor; -use Qossmic\Deptrac\Core\Layer\Collector\UsesCollector; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\Helpers\FileReferenceBuilder; +use Qossmic\Deptrac\DefaultBehavior\Layer\UsesCollector; final class UsesCollectorTest extends TestCase { diff --git a/tests/Core/Layer/LayerResolverTest.php b/tests/Core/Layer/LayerResolverTest.php index e067e8c1..2d02f981 100644 --- a/tests/Core/Layer/LayerResolverTest.php +++ b/tests/Core/Layer/LayerResolverTest.php @@ -7,10 +7,10 @@ use PHPUnit\Framework\TestCase; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeReference; use Qossmic\Deptrac\Contract\Ast\AstMap\ClassLikeToken; +use Qossmic\Deptrac\Contract\Layer\Collectable; use Qossmic\Deptrac\Contract\Layer\CollectorInterface; +use Qossmic\Deptrac\Contract\Layer\CollectorResolverInterface; use Qossmic\Deptrac\Contract\Layer\InvalidLayerDefinitionException; -use Qossmic\Deptrac\Core\Layer\Collector\Collectable; -use Qossmic\Deptrac\Core\Layer\Collector\CollectorResolverInterface; use Qossmic\Deptrac\Core\Layer\LayerResolver; final class LayerResolverTest extends TestCase diff --git a/tests/Supportive/Console/Command/AnalyseCommandTest.php b/tests/Supportive/Console/Command/AnalyseCommandTest.php index c9f24971..80ec66cd 100644 --- a/tests/Supportive/Console/Command/AnalyseCommandTest.php +++ b/tests/Supportive/Console/Command/AnalyseCommandTest.php @@ -5,8 +5,8 @@ namespace Tests\Qossmic\Deptrac\Supportive\Console\Command; use PHPUnit\Framework\TestCase; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GithubActionsOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Command\AnalyseCommand; -use Qossmic\Deptrac\Supportive\OutputFormatter\GithubActionsOutputFormatter; class AnalyseCommandTest extends TestCase { diff --git a/tests/Supportive/DependencyInjection/CustomPhpParser.php b/tests/Supportive/DependencyInjection/CustomPhpParser.php index 9b0f20d5..da7a56aa 100644 --- a/tests/Supportive/DependencyInjection/CustomPhpParser.php +++ b/tests/Supportive/DependencyInjection/CustomPhpParser.php @@ -2,6 +2,6 @@ namespace Tests\Qossmic\Deptrac\Supportive\DependencyInjection; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; class CustomPhpParser extends NikicPhpParser {} diff --git a/tests/Supportive/DependencyInjection/ServiceContainerBuilderTest.php b/tests/Supportive/DependencyInjection/ServiceContainerBuilderTest.php index ac29bcab..098412a0 100644 --- a/tests/Supportive/DependencyInjection/ServiceContainerBuilderTest.php +++ b/tests/Supportive/DependencyInjection/ServiceContainerBuilderTest.php @@ -5,7 +5,7 @@ namespace Tests\Qossmic\Deptrac\Supportive\DependencyInjection; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser; +use Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser; use Qossmic\Deptrac\Supportive\DependencyInjection\ServiceContainerBuilder; final class ServiceContainerBuilderTest extends TestCase diff --git a/tests/Supportive/DependencyInjection/config/custom.yaml b/tests/Supportive/DependencyInjection/config/custom.yaml index 94540b54..1769e54a 100644 --- a/tests/Supportive/DependencyInjection/config/custom.yaml +++ b/tests/Supportive/DependencyInjection/config/custom.yaml @@ -1,3 +1,3 @@ services: - Qossmic\Deptrac\Core\Ast\Parser\NikicPhpParser\NikicPhpParser: + Qossmic\Deptrac\DefaultBehavior\Ast\Parser\NikicPhpParser: class: Tests\Qossmic\Deptrac\Supportive\DependencyInjection\CustomPhpParser diff --git a/tests/Supportive/OutputFormatter/BaselineOutputFormatterTest.php b/tests/Supportive/OutputFormatter/BaselineOutputFormatterTest.php index 958b4693..d014da94 100644 --- a/tests/Supportive/OutputFormatter/BaselineOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/BaselineOutputFormatterTest.php @@ -17,11 +17,11 @@ use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\BaselineOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\BaselineOutputFormatter; use Qossmic\Deptrac\Supportive\OutputFormatter\YamlBaselineMapper; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; diff --git a/tests/Supportive/OutputFormatter/CodeclimateOutputFormatterTest.php b/tests/Supportive/OutputFormatter/CodeclimateOutputFormatterTest.php index 8d61562d..4f375c53 100644 --- a/tests/Supportive/OutputFormatter/CodeclimateOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/CodeclimateOutputFormatterTest.php @@ -18,12 +18,12 @@ use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\CodeclimateOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\CodeclimateOutputFormatter; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/ConfigurationCodeclimateTest.php b/tests/Supportive/OutputFormatter/ConfigurationCodeclimateTest.php index 778baa4a..70ca6fa8 100644 --- a/tests/Supportive/OutputFormatter/ConfigurationCodeclimateTest.php +++ b/tests/Supportive/OutputFormatter/ConfigurationCodeclimateTest.php @@ -5,10 +5,10 @@ namespace Tests\Qossmic\Deptrac\Supportive\OutputFormatter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationCodeclimate; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\ConfigurationCodeclimate; /** - * @covers \Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationCodeclimate + * @covers \Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\ConfigurationCodeclimate */ final class ConfigurationCodeclimateTest extends TestCase { diff --git a/tests/Supportive/OutputFormatter/ConfigurationGraphVizTest.php b/tests/Supportive/OutputFormatter/ConfigurationGraphVizTest.php index b4072fac..5b8057d7 100644 --- a/tests/Supportive/OutputFormatter/ConfigurationGraphVizTest.php +++ b/tests/Supportive/OutputFormatter/ConfigurationGraphVizTest.php @@ -5,10 +5,10 @@ namespace Tests\Qossmic\Deptrac\Supportive\OutputFormatter; use PHPUnit\Framework\TestCase; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationGraphViz; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\ConfigurationGraphViz; /** - * @covers \Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\ConfigurationGraphViz + * @covers \Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\ConfigurationGraphViz */ final class ConfigurationGraphVizTest extends TestCase { diff --git a/tests/Supportive/OutputFormatter/ConsoleOutputFormatterTest.php b/tests/Supportive/OutputFormatter/ConsoleOutputFormatterTest.php index c287e594..c456ba29 100644 --- a/tests/Supportive/OutputFormatter/ConsoleOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/ConsoleOutputFormatterTest.php @@ -19,11 +19,11 @@ use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; use Qossmic\Deptrac\Contract\Result\Warning; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\ConsoleOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\ConsoleOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/FormatterProviderTest.php b/tests/Supportive/OutputFormatter/FormatterProviderTest.php index ad75c966..33a234d0 100644 --- a/tests/Supportive/OutputFormatter/FormatterProviderTest.php +++ b/tests/Supportive/OutputFormatter/FormatterProviderTest.php @@ -5,10 +5,10 @@ namespace Tests\Qossmic\Deptrac\Supportive\OutputFormatter; use PHPUnit\Framework\TestCase; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\ConsoleOutputFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\TableOutputFormatter; use Qossmic\Deptrac\Supportive\DependencyInjection\Exception\InvalidServiceInLocatorException; -use Qossmic\Deptrac\Supportive\OutputFormatter\ConsoleOutputFormatter; use Qossmic\Deptrac\Supportive\OutputFormatter\FormatterProvider; -use Qossmic\Deptrac\Supportive\OutputFormatter\TableOutputFormatter; use stdClass; use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; use Symfony\Component\DependencyInjection\ServiceLocator; diff --git a/tests/Supportive/OutputFormatter/GithubActionsOutputFormatterTest.php b/tests/Supportive/OutputFormatter/GithubActionsOutputFormatterTest.php index 2db71948..e8e2584c 100644 --- a/tests/Supportive/OutputFormatter/GithubActionsOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/GithubActionsOutputFormatterTest.php @@ -19,11 +19,11 @@ use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; use Qossmic\Deptrac\Contract\Result\Warning; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GithubActionsOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\GithubActionsOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/GraphVizDotOutputFormatterTest.php b/tests/Supportive/OutputFormatter/GraphVizDotOutputFormatterTest.php index 83d854f7..c80d46ef 100644 --- a/tests/Supportive/OutputFormatter/GraphVizDotOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/GraphVizDotOutputFormatterTest.php @@ -15,11 +15,11 @@ use Qossmic\Deptrac\Contract\Result\OutputResult; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\GraphVizOutputDotFormatter; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; -use Qossmic\Deptrac\Supportive\OutputFormatter\GraphVizOutputDotFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/JUnitOutputFormatterTest.php b/tests/Supportive/OutputFormatter/JUnitOutputFormatterTest.php index 9d86d31a..753c48aa 100644 --- a/tests/Supportive/OutputFormatter/JUnitOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/JUnitOutputFormatterTest.php @@ -17,11 +17,11 @@ use Qossmic\Deptrac\Contract\Result\OutputResult; use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\JUnitOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\JUnitOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/JsonOutputFormatterTest.php b/tests/Supportive/OutputFormatter/JsonOutputFormatterTest.php index 26881c37..a60d1c36 100644 --- a/tests/Supportive/OutputFormatter/JsonOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/JsonOutputFormatterTest.php @@ -18,11 +18,11 @@ use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\JsonOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\JsonOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/MermaidJSOutputFormatterTest.php b/tests/Supportive/OutputFormatter/MermaidJSOutputFormatterTest.php index c43b5336..3c61b60c 100644 --- a/tests/Supportive/OutputFormatter/MermaidJSOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/MermaidJSOutputFormatterTest.php @@ -14,11 +14,11 @@ use Qossmic\Deptrac\Contract\Result\Allowed; use Qossmic\Deptrac\Contract\Result\OutputResult; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\Helpers\FormatterConfiguration; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\MermaidJSOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\Configuration\FormatterConfiguration; -use Qossmic\Deptrac\Supportive\OutputFormatter\MermaidJSOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/TableOutputFormatterTest.php b/tests/Supportive/OutputFormatter/TableOutputFormatterTest.php index 8117f6e2..2fc600e7 100644 --- a/tests/Supportive/OutputFormatter/TableOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/TableOutputFormatterTest.php @@ -19,11 +19,11 @@ use Qossmic\Deptrac\Contract\Result\Uncovered; use Qossmic\Deptrac\Contract\Result\Violation; use Qossmic\Deptrac\Contract\Result\Warning; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\TableOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\TableOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle; diff --git a/tests/Supportive/OutputFormatter/XMLOutputFormatterTest.php b/tests/Supportive/OutputFormatter/XMLOutputFormatterTest.php index aee2ff09..56fa1778 100644 --- a/tests/Supportive/OutputFormatter/XMLOutputFormatterTest.php +++ b/tests/Supportive/OutputFormatter/XMLOutputFormatterTest.php @@ -16,11 +16,11 @@ use Qossmic\Deptrac\Contract\Result\OutputResult; use Qossmic\Deptrac\Contract\Result\SkippedViolation; use Qossmic\Deptrac\Contract\Result\Violation; -use Qossmic\Deptrac\Core\Dependency\Dependency; use Qossmic\Deptrac\Core\Dependency\InheritDependency; +use Qossmic\Deptrac\DefaultBehavior\Dependency\Helpers\Dependency; +use Qossmic\Deptrac\DefaultBehavior\OutputFormatter\XMLOutputFormatter; use Qossmic\Deptrac\Supportive\Console\Symfony\Style; use Qossmic\Deptrac\Supportive\Console\Symfony\SymfonyOutput; -use Qossmic\Deptrac\Supportive\OutputFormatter\XMLOutputFormatter; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Style\SymfonyStyle;