Skip to content

Commit 806cbd4

Browse files
authored
Merge pull request #18 from tasuku43/exclude-self-from-dependency-nodes
fix: Exclude 'self' from dependency node names and add static factory method
2 parents b2fa0da + 7cf6c54 commit 806cbd4

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/ClassDiagramRenderer/Node/Connector/DependencyConnector.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@ public static function parse(
4545
if ($method->returnType instanceof Name) {
4646
$parts = $method->returnType->getParts();
4747
$returnTypeName = end($parts);
48-
if ($returnTypeName !== 'self') {
49-
$dependencyNodeNames[] = $returnTypeName;
50-
}
48+
$dependencyNodeNames[] = $returnTypeName;
5149
}
5250
}
5351

@@ -61,7 +59,7 @@ public static function parse(
6159
}
6260

6361
// remove duplicates
64-
$dependencyNodeNames = array_unique($dependencyNodeNames);
62+
$dependencyNodeNames = array_filter(array_unique($dependencyNodeNames), fn($name) => $name !== 'self');
6563

6664
return new DependencyConnector($classDiagramNode->nodeName(), $dependencyNodeNames);
6765
}

tests/ClassDiagram/data/SomeClassA.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,9 @@ class SomeClassA extends SomeAbstractClass
1010
public function __construct(private SomeClassC $someClassC, SomeClassD $someClassD, private int $int)
1111
{
1212
}
13+
14+
public static function getInstance(): self
15+
{
16+
return new self(new SomeClassC(), new SomeClassD(), 1);
17+
}
1318
}

0 commit comments

Comments
 (0)