irstea/plantuml-bundle
Symfony bundle that integrates PlantUML into your PHP application, making it easy to generate and render UML diagrams from PlantUML source. It provides services and Twig helpers to embed diagrams in templates and streamline diagram creation and display.
Architecture fit — mismatch, and that is the first finding. The package is a Symfony bundle (gitlab.irstea.fr/pole-is/bundles/plantuml-bundle), not a Laravel package. Symfony bundles are bootstrapped by the Symfony kernel and lean on bundle registration, the DI container, and configuration-tree conventions. Laravel reuses Symfony components but has no bundle loader, so nothing here participates in package discovery or a service provider. Even a successful install would introspect Symfony bundle/service metadata that a Laravel application does not have — producing either nothing or a diagram of the wrong architecture. The TPM-relevant framing: this is not "a Laravel tool with rough edges," it is a tool built for a different framework's object model.
Integration feasibility — low, gated on access. Three compounding signals: the source is on an institutional GitLab, not Packagist or GitHub, so composer require fails without a VCS repository entry and likely IRSTEA credentials; there are zero stars, zero dependents, and a score of 0, meaning no external project has demonstrated it works outside its origin repo; and no release tags, version constraints, or license are visible.
Technical risk — high, and mostly non-technical in nature. Maintenance cadence unknown; PHP/Symfony support range unknown; license unverified (institutional repos frequently carry internal-only terms that could block commercial use or redistribution); bus factor effectively one, held by a research institute's IS pole rather than a product team. On top of that sits a runtime toolchain dependency: PlantUML is Java, and many diagram types need Graphviz, so any environment that renders diagrams needs a JRE and Graphviz present.
Key questions to answer before spending engineering time:
.puml text, rendered images, an HTTP endpoint, or a CI artifact?Stack fit — evaluate as reference material, not as a dependency. The decision this package genuinely supports is the recurring "build vs. buy vs. auto-generate architecture documentation" question. Auto-generation from source is the cheap fourth option that stops diagrams rotting after the first refactor. But for a Laravel team the leverage is conceptual: borrow the approach (reflection/AST-driven PlantUML emission) rather than the bundle wiring. Adopting it directly means permanently maintaining a Symfony-kernel shim inside a Laravel app — a standing tax on a developer-tooling feature.
Migration path, in order of preference:
.puml files, publish as artifacts. Keeps it entirely out of composer.json; blast radius contained.app/Support/Uml, swapping Symfony service lookups for Laravel container calls. The path if diagram output proves genuinely valuable.Compatibility. Laravel version is largely irrelevant; the real constraints are the bundle's PHP range versus your runtime (a pin to older PHP may conflict with a modern Laravel app on 8.2/8.3), and whether a JRE plus Graphviz can be added to your image.
Sequencing.
Maintenance — the dominant cost, and the one to socialize upward. With no stars, no dependents, and a single institutional source, assume you own the code the moment you depend on it. Budget for a fork. Upstream contributions are unlikely to be reviewed promptly, and the repo could be archived or made private without notice. Documentation is in French, which narrows the on-call pool.
Support. No community, no visible issue-tracker activity, no Stack Overflow corpus. Every question becomes an internal investigation. Benchmark against maintained alternatives (phpDocumentor, PhpUML, or a small in-house reflection-based generator) that carry community support and at least a license you can point at.
Scaling. Runtime scaling is a non-issue — this is a build-time concern. The scaling cost is CI surface: every pipeline that generates diagrams needs a JRE and Graphviz layer, adding hundreds of megabytes and minutes to build times. Mitigate by caching the PlantUML jar and running generation on merge or a nightly schedule rather than on every PR.
Failure modes to plan for:
Ramp-up. Low for someone fluent in both Symfony and PlantUML; moderate for a Laravel-only team, who must first learn bundle conventions to understand why nothing "just works." Realistically 2–3 days for a spike and an honest verdict; 1–2 weeks if the fork-and-extract path is chosen.
TPM recommendation. Do not adopt as a dependency. Fund a one-engineer, one-sprint spike to determine whether the generation logic is worth forking — that is a cheap, bounded experiment that answers a real documentation-strategy question. Default to a lightweight in-house generator or a maintained alternative, and keep UML generation as a CI artifact with a freshness stamp rather than an application runtime feature.
How can I help you explore Laravel packages today?