PlantUml wrapper to convert .puml
diagrams into images.
This package provides three methods:
\Jawira\PlantUmlToImage\PlantUml::convertTo
\Jawira\PlantUmlToImage\PlantUml::setJar
\Jawira\PlantUmlToImage\PlantUml::isPlantUmlAvailable
It's up to you to load your diagram from disk, then
use \Jawira\PlantUmlToImage\PlantUml
to convert the diagram to another format,
after conversion, it's up to you to save new image to disk:
use Jawira\PlantUmlToImage\Format;
use Jawira\PlantUmlToImage\PlantUml;
// Load diagram
$puml = file_get_contents('./diagram.puml');
// Convert to png
$plantUml = new PlantUml();
$png = $plantUml->convertTo($puml, Format::PNG);
// Save diagram
file_put_contents('./diagram.png', $png);
Specify the location of plantuml.jar
:
$plantUml->setJar('/path/to/plantuml.jar');
You don't need to set Jar location in the following cases:
- You have downloaded PlantUML
with jawira/plantuml
, (location
vendor/jawira/plantuml/bin/plantuml.jar
). - If you have installed PlantUML with apt-get
(location
/usr/share/plantuml/plantuml.jar
). - Or if you have
plantuml
command installed.
An exception is thrown when jar can't be found, use this method to avoid the exception.
if ($plantUml->isPlantUmlAvailable()) {
echo 'PlantUml is available.', PHP_EOL;
} else {
echo 'Sorry, cannot convert diagram.', PHP_EOL;
}
$ composer require jawira/plantuml-to-image
This package needs PlantUml (https://plantuml.com/en/download) as an executable or as a Jar file, note that PlantUml has its own requirements (https://plantuml.com/en/starting).
As an alternative, you can install PlantUml with Composer:
$ composer require jawira/plantuml
If you liked this project, ⭐ star it on GitHub.
This library is licensed under the MIT license.
- jawira/doctrine-diagram-bundle
- Symfony Bundle to generate database diagrams.
- jawira/case-converter
- Convert strings between 13 naming conventions: Snake case, Camel case, Pascal case, Kebab case, Ada case, Train case, Cobol case, Macro case, Upper case, Lower case, Sentence case, Title case and Dot notation.
- more...