Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Plantuml Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  1. Is the GitLab project publicly readable, or does it require credentials?
  2. What license applies, and does it permit forking and internal redistribution?
  3. What PHP/Symfony versions are supported, and when was the last commit?
  4. Does generation parse PHP source directly, or depend on Symfony bundle metadata (which Laravel lacks)?
  5. Is there a standalone CLI mode, or is it strictly kernel-coupled?
  6. What does it actually emit — .puml text, rendered images, an HTTP endpoint, or a CI artifact?
  7. Does it produce anything beyond static class/structure diagrams? (Behavioral/sequence views are unlikely.)

Integration Approach

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:

  1. CI-only sidecar — clone into a build stage, run as a standalone generator, emit .puml files, publish as artifacts. Keeps it entirely out of composer.json; blast radius contained.
  2. Fork and extract — vendor the generation classes (not the bundle wiring) into a private package or app/Support/Uml, swapping Symfony service lookups for Laravel container calls. The path if diagram output proves genuinely valuable.
  3. VCS require with a wrapper provider — only viable if the repo is public and license-clean; still needs a hand-written provider because bundle bootstrapping will never run under Laravel.

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.

  1. Access and license check — blocking gate, roughly one day. Stop here if either fails.
  2. Spike — clone, run standalone against a representative module, judge whether the output understands Laravel constructs at all.
  3. Decision — adopt-fork, build-thin, or drop. Document the verdict either way so it isn't re-litigated.
  4. If proceeding — containerize the generator, wire into CI as a non-blocking job on merge or on a schedule (not per-PR), publish diagrams to the repo wiki.
  5. Only much later — consider runtime exposure via an artisan command, if ever.

Operational Impact

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:

  • Access revocation — repo requires new auth or moves; builds break. Mitigate by vendoring a pinned copy or mirroring to internal Git.
  • Framework drift — an upstream Symfony 7 bump conflicts with your PHP pin; you are locked until you patch the fork.
  • Silent staleness — diagrams generate successfully but no longer reflect the code because the tool doesn't understand Laravel idioms. Worse than no diagrams: stakeholders trust an inaccurate artifact. Add a freshness check or a visible "generated from commit X" stamp.
  • Toolchain absence — missing Java/Graphviz in a slim image. Fail the job explicitly rather than emitting empty artifacts.
  • License contamination — discovering non-permissive terms after output has been circulated in client or audit deliverables.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus