Erste Schritte

Nach dem erfolgreichen Download der Phar Archive kann das erste kleine Anwendungsscript erstellt werden. Dazu legen wir die Datei myapp.php an.


include_once '/phar/alvine.framework-snapshot.phar';
include_once '/phar/alvine.documentation.plantuml-snapshot.phar';

Im ersten Beispiel soll eine Klasse definiert werden. dazu muss ein neues Diagramm-Objekt erstellt und eine Klasse hinzugefügt werden.

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

$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);


echo (string) $diagram;

Die Ausgabe ist dann folgender Code.


abstract class myClass {
{abstract} {static} -validate(a, b)
{static} -a
{static} -b
}

bzw. folgendes Diagramm.

uml diagram

Für ein Interface können wir das selbe Beipiel folgendermassen definieren.

$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);

echo (string) $diagram;

Das Ergebnis ist der folgende Code.


interface myInterface {
{static} -doSomething(a, b)
{static} doOther(a)
{static} -myValue
-myCount
}

Um eine Beziehung herzustellen, wird

$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);
$interface->addMethod('doOther', ['a'], null, 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, false);
$class->addProperty('a', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, false);
$class->addProperty('b', \Alvine\Documentation\PlantUML\Diagram\Classes\Structure\ClassStructure::VISIBILITY_PRIVATE, false);
$diagram->add($class);

$diagram->add(new \Alvine\Documentation\PlantUML\Diagram\Classes\Relation\Implementation($interface, $class));

echo (string) $diagram;