class Diagram extends Alvine

Klassendiagramm

Diese Klasse hilft bei der Erstellung einer Beschreibungszeichenkette für plantUML. plantUML ist ein Programm zur Erstellung von UML-Diagrammen aus einer ASCII Beschreibungsdatei.

Weitere Infos sind unter plantuml.sourceforge.net zu finden.

Das folgende Beispiel erstellt ein Diagramm:

$diagram = new \Alvine\Documentation\PlantUML\Diagram\Classes\Diagram();

$interface = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\InterfaceStructure('myInterface');
$interface->addMethod('doSomething', ['a', 'b'], \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true, true);
$interface->addMethod('doOther', ['a'], null, true, false);
$interface->addProperty('myValue', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true);
$interface->addProperty('myCount', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, false);
$diagram->add($interface);

$class = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('myClass', true);
$class->addMethod('validate', ['a', 'b'], \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true, true);
$class->addProperty('a', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true);
$class->addProperty('b', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true);
$diagram->add($class);


$trait = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('myTrait', true);
$trait->addMethod('run', ['d'], \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true, true);
$trait->addProperty('d', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, true);
$diagram->add($trait);

$classA = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('A', true);
$classB = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('B', true);

$extends = new \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Extension($classA, $classB);
$diagram->add($extends);

$classC = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('C', true);
$composition = new \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Composition($classA, $classC);
$diagram->add($composition);

$classD = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('D', true);
$agregation = new \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Agregation($classB, $classD, \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Agregation::RIGHT);
$diagram->add($agregation);

$classE = new \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure('E', true);
$assosiation = new \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Assosiation($classA, $classE, \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Assosiation::HORIZONTAL);
$diagram->add($assosiation);

echo (string) $diagram;

Diese ergibt folgendes UML Diagramm


Alvine UML-Diagramm


Constants

SET_PHP_NAMESPACE

PHP-Namespace setzen (Leerzeichen ist wichtig, damit \ erkannt wird)

START_TAG

Start-Tag

SKINPARAM

skinparam

END_TAG

End-Tag

Properties

protected string> $entity
protected boolean $autonamespace
protected array $skinparam

Methods

__construct()

Neues Objekt

add(Entity $entity)

Neues Element hinzufügen

$this
setSkinparam(string $key, string $value)

Skin setzen

string
getDiagramm(string $startTag = null, string $endTag = null)

Diagramm erstellen

activateNamespace()

Schaltet die automatische Namensraum Erkennung an

deactivateNamespace()

Schaltet die automatische Namensraum Erkennung aus

string
__toString()

Für String-Cast

Details

at line 136
__construct()

Neues Objekt

at line 153
Diagram add(Entity $entity)

Neues Element hinzufügen

Es können Packages, Klasse, Interfaces, Trait hinzugefügt werden

Parameters

Entity $entity Neues Element hinzufügen

Return Value

Diagram

at line 166
$this setSkinparam(string $key, string $value)

Skin setzen

Parameters

string $key
string $value

Return Value

$this

at line 182
string getDiagramm(string $startTag = null, string $endTag = null)

Diagramm erstellen

Erstellt die für plantUML notwendige ASCII Beschreibung. Die Standard-Tags sind @startuml und @enduml.

Parameters

string $startTag Anfangstag
string $endTag Endtag

Return Value

string plantUML Diagramm

at line 209
Diagram activateNamespace()

Schaltet die automatische Namensraum Erkennung an

Return Value

Diagram

at line 219
Diagram deactivateNamespace()

Schaltet die automatische Namensraum Erkennung aus

Return Value

Diagram

at line 229
string __toString()

Für String-Cast

Return Value

string plantUML-Diagrammdaten