Skip to content

Commit

Permalink
Follow up to code review comments
Browse files Browse the repository at this point in the history
- Added array shape declaration for $config.
- Changed order of parameters to NikicPhpParser to match
  FileReferenceVisitor.
- Added support for internal_tag to DeptracConfig.
  • Loading branch information
brightbyte committed Dec 16, 2023
1 parent 1119a68 commit b2a47ff
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 5 deletions.
2 changes: 1 addition & 1 deletion config/services.php
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@
$services
->set(NikicPhpParser::class)
->args([
'$extractors' => tagged_iterator('reference_extractors'),
'$config' => param('analyser'),
'$extractors' => tagged_iterator('reference_extractors'),
]);
$services->alias(ParserInterface::class, NikicPhpParser::class);
$services->set(TypeResolver::class);
Expand Down
11 changes: 11 additions & 0 deletions src/Contract/Config/DeptracConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,22 @@ final class DeptracConfig implements ConfigBuilderInterface
private array $formatters = [];
/** @var array<Ruleset> */
private array $rulesets = [];
/** @var ?string */
private ?string $internalTag = null;
/** @var array<string, EmitterType> */
private array $analyser = [];
/** @var array<string, array<string>> */
private array $skipViolations = [];
/** @var array<string> */
private array $excludeFiles = [];

public function internalTag(?string $tag): self
{
$this->internalTag = $tag;

return $this;
}

public function analysers(EmitterType ...$types): self
{
foreach ($types as $type) {
Expand Down Expand Up @@ -109,6 +118,8 @@ public function toArray(): array
$config['paths'] = $this->paths;
}

$config['analyser']['internal_tag'] = $this->internalTag;

if ([] !== $this->analyser) {
$config['analyser']['types'] = array_map(static fn (EmitterType $emitterType) => $emitterType->value, $this->analyser);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class FileReferenceVisitor extends NodeVisitorAbstract
private readonly ?string $internalTag;

/**
* @param array<mixed> $config
* @param array{internal_tag: ?string} $config
*/
public function __construct(
private readonly FileReferenceBuilder $fileReferenceBuilder,
Expand Down
6 changes: 3 additions & 3 deletions src/Core/Ast/Parser/NikicPhpParser/NikicPhpParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ class NikicPhpParser implements ParserInterface

/**
* @param ReferenceExtractorInterface[] $extractors
* @param array<mixed> $config
* @param array{internal_tag: ?string} $config
*/
public function __construct(
private readonly Parser $parser,
private readonly AstFileReferenceCacheInterface $cache,
private readonly TypeResolver $typeResolver,
private readonly iterable $extractors,
private readonly array $config
private readonly array $config,
private readonly iterable $extractors
) {
$this->traverser = new NodeTraverser();
$this->traverser->addVisitor(new NameResolver());
Expand Down

0 comments on commit b2a47ff

Please sign in to comment.