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

Doctrine Doc Bundle Laravel Package

wizad/doctrine-doc-bundle

A Symfony bundle that generates browsable documentation from Doctrine entity metadata, making it easier to inspect mappings, fields, associations, and database structure without digging through source code. Useful for teams that want clear, accessible data-model docs inside their app.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Despite the "Laravel/PHP" framing, this is a Symfony bundle, not a Laravel package. It hooks into Symfony's kernel, DI container, and console command system, and ships a WizadDoctrineDocBundle class meant to be registered in AppKernel/bundles.php.
  • Its functional core is narrow: read Doctrine ORM metadata and emit documentation (likely entity/relationship diagrams and attribute listings). That logic is separable from the Symfony wiring, which is the only path to sane Laravel use.
  • For a Laravel team, the "architecture fit" is poor as a drop-in but acceptable as an isolated CLI tool invoked out-of-process (e.g., php artisan doctrine:doc shelling out to a small Symfony console app, or a scheduled CI job).

Integration feasibility

  • Low stars (14), zero dependents, and a composite score of 0.2 signal an effectively unmaintained, unvetted package. Expect no ecosystem guarantees.
  • Feasible integration paths, ranked:
    1. Standalone CLI: install in a throwaway/CI container with its own composer.json pointed at the app's Doctrine metadata source. Zero impact on app runtime.
    2. Vendored/forked extraction: copy the doc-generation service and templates into app/, drop the bundle registration.
    3. Full bundle bridge into Laravel (custom ServiceProvider + Doctrine metadata from laravel-doctrine/orm): highest effort, highest coupling, least recommended.
  • Licensing is clean (MIT), so forking is legally uncontroversial.

Technical risk

  • Version drift: Symfony bundle era is unclear; likely targets Symfony 2/3/4 with PHP 5.7–7.x constraints. Modern PHP 8.2+ / Doctrine ORM 2.14+ / ORM 3.x attribute mapping may break it outright.
  • Binary/tooling dependency: doc generators of this vintage typically require GraphViz (dot) for ERD output — an extra system dependency in CI and prod-like environments.
  • Metadata API assumptions: older exporters often assume annotation mapping and the deprecated ClassMetadataInfo shape; attribute-based mappings and ORM 3 changes can silently produce empty or partial docs.
  • Abandonment risk is the dominant risk, not correctness.

Key questions

  • Which Symfony, PHP, and Doctrine ORM versions does the last commit support? Is it compatible with PHP 8.2+ and ORM 3.x?
  • Does doc generation depend on GraphViz/Twig at runtime, and can output be rendered as static HTML/PNG in CI?
  • Does it read mapping from a booted kernel/container, or can it take a metadata factory directly (determines whether the standalone-CLI path is viable)?
  • Is the output materially better than doctrine:schema:validate, an ERD from the DB via SchemaSpy, or a Mermaid generator — enough to justify adopting an unmaintained dependency?
  • Is there any commit activity in the last 24 months, and are issues/PRs unaddressed?

Integration Approach

Stack fit

  • Laravel-native (Eloquent): no fit. Doctrine ORM is a distinct persistence layer; if the app is Eloquent-first this package has nothing to document.
  • Laravel + laravel-doctrine/orm: partial fit. The Doctrine metadata exists, but the bundle wrapper does not. The generator must be pulled out or run in a sibling process.
  • Symfony app or Doctrine-only PHP service: good fit if version constraints line up.

Migration path

  • Phase 0 (spike, ~2–3 days): clone the repo, install into a scratch Symfony/console app, point it at a representative Doctrine schema snapshot, and capture sample output on both the oldest and newest supported versions.
  • Phase 1 (isolated tooling): commit a tools/schema-docs/ Composer project (own lockfile) with a thin console entrypoint. Wire a Make target / CI job. No changes to the application's composer.json.
  • Phase 2 (optional extraction): if output is valuable, fork the generator service into first-party code, replace Twig templates with your own, and drop the Symfony bundle inheritance.
  • Phase 3 (retire or own): if the fork is load-bearing, assume full maintenance; otherwise substitute with a maintained ERD generator.

Compatibility

  • Pin exact versions in the tools project; do not let this enter the app's dependency graph. Test against the app's Doctrine ORM major version first — this is the make-or-break check.
  • Verify PHP extension and system-binary availability (graphviz, gd/imagick if image output) in the CI image.

Sequencing

  1. Confirm ORM major version and mapping style (annotations vs. attributes) in the target app.
  2. Spike the standalone CLI against a scrubbed schema.
  3. Evaluate output quality vs. alternatives in a side-by-side doc review.
  4. Decide: adopt isolated / fork / reject.
  5. If adopted, add a scheduled CI job and a documentation publishing step; assign an owner.

Operational Impact

Maintenance

  • Assume you will be the maintainer. Zero dependents and 14 stars mean no upstream velocity; expect to patch Doctrine API changes yourself.
  • Budget ongoing cost: re-validation on every Doctrine ORM major/minor bump, plus periodic template/output fixes. Estimate a few days per year minimum, more if the fork becomes user-facing.

Support

  • No vendor support, no community, no security advisories. Internal ownership of a one-page runbook (how to run, where output lands, who fixes breakage) is mandatory.
  • Security exposure is minimal: it reads schema metadata and writes files; it is not on the request path. Keep it out of production runtime entirely.

Scaling

  • Doc generation is a batch, offline workload: it scales with the number of entities, not with traffic. Large schemas (hundreds of entities) may hit memory or produce unreadable diagrams — plan for filtered subsets and pagination/splitting in output.
  • Running in CI is trivially horizontal; no runtime scaling concerns.

Failure modes

  • Silent breakage after a Doctrine upgrade → empty or partial docs with no error. Mitigate with an assertion in the CI job (entity count in output matches metadata count).
  • Missing GraphViz binary → generation error or fallback text-only output.
  • PHP version / extension mismatch in the CI image → hard failure at install time.
  • Schema drift from prod → stale docs. Mitigate by generating from the canonical migrations/metadata source and timestamping output.
  • Abandoned upstream + transitive dependency CVEs → requires manual audit; isolated lockfile limits blast radius.

Ramp-up

  • Using it: low — one command, one output directory. A mid-level engineer can operate it in under a day.
  • Fixing it: moderate — requires familiarity with Doctrine metadata internals and Symfony bundle structure. Realistically a 1–2 week ramp for an engineer to confidently patch the extraction path.
  • Recommendation for the TPM: treat as a low-cost pilot in isolated tooling, not a product dependency. Gate adoption on a concrete Doc-quality win over cheaper alternatives (SchemaSpy, Mermaid from DB, doctrine:schema:validate). Do not let it enter the application's dependency graph.
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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log