Skip to content

Commit c30757f

Browse files
authored
Remove final keyword from extensible classes to fix #25 (#26)
This change allows users to extend core classes for customization purposes. Modified classes (17 files): - Core diagram classes: Graph, ERDiagram, ClassDiagram, Timeline - Building blocks: Node, Link, Entity, Concept, Marker - Component classes: EntityProperty, Attribute, Method, Event, Argument - Structural classes: ConceptNamespace, Relationship - Utility classes: Render All tests pass (85 tests, 269 assertions). Fixes #25
1 parent 9a98782 commit c30757f

File tree

17 files changed

+68
-17
lines changed

17 files changed

+68
-17
lines changed

src/ClassDiagram/ClassDiagram.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@
2323
use JBZoo\MermaidPHP\Helper;
2424
use JBZoo\MermaidPHP\Render;
2525

26-
final class ClassDiagram
26+
/**
27+
* @psalm-suppress ClassMustBeFinal
28+
*/
29+
class ClassDiagram
2730
{
2831
private ?string $title = null;
2932
private ?Direction $direction = null;

src/ClassDiagram/Concept/Argument.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
namespace JBZoo\MermaidPHP\ClassDiagram\Concept;
1818

19-
final class Argument implements \Stringable
19+
/**
20+
* @psalm-suppress ClassMustBeFinal
21+
*/
22+
class Argument implements \Stringable
2023
{
2124
public function __construct(
2225
private string $name,

src/ClassDiagram/Concept/Attribute.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
namespace JBZoo\MermaidPHP\ClassDiagram\Concept;
1818

19-
final class Attribute implements \Stringable
19+
/**
20+
* @psalm-suppress ClassMustBeFinal
21+
*/
22+
class Attribute implements \Stringable
2023
{
2124
public function __construct(
2225
private string $name,

src/ClassDiagram/Concept/Concept.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
use JBZoo\MermaidPHP\Helper;
2020

21-
final class Concept
21+
/**
22+
* @psalm-suppress ClassMustBeFinal
23+
*/
24+
class Concept
2225
{
2326
private static bool $safeMode = false;
2427
private string $identifier;

src/ClassDiagram/Concept/Method.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
use JBZoo\MermaidPHP\Exception;
2020

21-
final class Method implements \Stringable
21+
/**
22+
* @psalm-suppress ClassMustBeFinal
23+
*/
24+
class Method implements \Stringable
2225
{
2326
public function __construct(
2427
private string $name,

src/ClassDiagram/ConceptNamespace/ConceptNamespace.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
use JBZoo\MermaidPHP\ClassDiagram\Concept\Concept;
2020

21-
final class ConceptNamespace
21+
/**
22+
* @psalm-suppress ClassMustBeFinal
23+
*/
24+
class ConceptNamespace
2225
{
2326
/**
2427
* @param Concept[] $classes

src/ClassDiagram/Relationship/Relationship.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
use JBZoo\MermaidPHP\ClassDiagram\Concept\Concept;
2020

21-
final class Relationship
21+
/**
22+
* @psalm-suppress ClassMustBeFinal
23+
*/
24+
class Relationship
2225
{
2326
public function __construct(
2427
private Concept $classA,

src/ERDiagram/ERDiagram.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
use JBZoo\MermaidPHP\Helper;
2222
use JBZoo\MermaidPHP\Render;
2323

24-
final class ERDiagram
24+
/**
25+
* @psalm-suppress ClassMustBeFinal
26+
*/
27+
class ERDiagram
2528
{
2629
private const RENDER_SHIFT = 4;
2730

src/ERDiagram/Entity/Entity.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
use JBZoo\MermaidPHP\Helper;
2020

21-
final class Entity
21+
/**
22+
* @psalm-suppress ClassMustBeFinal
23+
*/
24+
class Entity
2225
{
2326
private static bool $safeMode = false;
2427
private string $identifier = '';

src/ERDiagram/Entity/EntityProperty.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
namespace JBZoo\MermaidPHP\ERDiagram\Entity;
1818

19-
final class EntityProperty implements \Stringable
19+
/**
20+
* @psalm-suppress ClassMustBeFinal
21+
*/
22+
class EntityProperty implements \Stringable
2023
{
2124
public const PRIMARY_KEY = 'PK';
2225
public const FOREIGN_KEY = 'FK';

0 commit comments

Comments
 (0)