pbaszak/extended-api-doc-bundle
ExtendedApiDocBundle is a Symfony bundle that extends API documentation generation with additional features and customization on top of existing doc tooling. It helps teams produce richer, more flexible API docs with less manual effort. Install it via Composer and configure it in your Symfony applic...
Architecture fit. Despite being catalogued as a "Laravel/PHP package," this is a Symfony bundle, not a Laravel package. It is a thin decorator over nelmio/api-doc-bundle: it overrides the bundle's Swagger UI templates/assets to (a) change how endpoints are grouped and sorted by tag and (b) apply minor CSS/styling corrections. There is no service-layer logic, no runtime request path involvement, and no database or queue surface. Architecturally it sits entirely in the developer-tooling / documentation-generation layer, which is the right place for it — but it is also the layer where teams have the least tolerance for upgrade friction.
Integration feasibility. Mechanically simple: composer require --dev, register the bundle in config/bundles.php, and confirm template override precedence against Nelmio's own templates. The real question is not "can we install it" but "does it survive the next Nelmio major." Because it patches view/template behavior rather than extending a stable public API, every Nelmio release that touches the Swagger UI templates or asset publishing is a potential break. The package's last release (Feb 2024) predates current Nelmio 5.x line, so version-constraint compatibility must be verified before any commitment.
Technical risk. The risk profile is dominated by project health, not code complexity:
Key questions for the maintainer / our own evaluation.
TPM read: the capability (better tag ordering in generated API docs) has genuine, if modest, developer-experience value — discoverability of endpoints in a large API surface. The artifact is too thin and too fragile to adopt as an external dependency. The correct leverage is to treat it as reference implementation, not as a dependency.
Stack fit. This is the gating question. If the platform is Symfony + NelmioApiDocBundle, fit is direct. If the platform is Laravel, there is no fit — Laravel's OpenAPI tooling (Scribe, Scramble, Dedoc) has entirely different rendering and extension points, and no amount of configuration will bridge it. Confirm the stack before spending any further evaluation effort. If we are a mixed shop, scope this to the Symfony services only.
Migration path. Treat as a vendored patch, not a package:
templates/bundles/NelmioApiDocBundle/ override directory, with a comment linking upstream and recording the MIT attribution.If we do adopt as a dependency, constrain it to require-dev, register the bundle only in dev/test environments, and pin both it and Nelmio.
Compatibility. Verify explicitly against our Nelmio version: composer why nelmio/api-doc-bundle, then check the package's composer.json constraints. Run the docs build in CI and diff the generated HTML/JSON to confirm the override is actually applied — silent fallback to the default view is the most likely failure and produces no error.
Sequencing.
Maintenance. The vendored form is ~tens of lines with effectively zero ongoing cost, but it does create an ownership line item: someone must re-check it whenever Nelmio's Swagger UI templates change. Budget a recurring 1–2 hours per Nelmio major upgrade. As a dependency, the same cost exists but is compounded by waiting on a maintainer who may not respond.
Support. There is no support. No issues activity, no SLA, no security policy, no release cadence. Any adoption decision must assume self-support from day one. That is acceptable for a dev-only cosmetic tool and unacceptable for anything on the request path — which this is not, which is the main reason it is tolerable at all.
Scaling. Documentation rendering scales with the number of endpoints and tags, not with traffic. At large API surfaces (hundreds of endpoints, dozens of tags), improved tag grouping is exactly where the value shows up — the UX benefit actually increases with API size. Client-side sorting is negligible. The scaling constraint is human: a large, fast-moving API surface will churn Nelmio versions more often, raising the re-verification frequency.
Failure modes.
Ramp-up. Near zero. Any Symfony developer can read the entire source in under an hour. The knowledge that matters is not "how does this package work" but "how does Nelmio's template override chain resolve" — and that knowledge is worth acquiring regardless, because it is the same knowledge needed for any future Swagger UI customization.
Recommendation. Do not take a production dependency on a 0-star, single-release bundle for a cosmetic docs improvement. Extract the tag-sorting logic and styling into our own Nelmio template override (MIT permits this with attribution), assign a named owner, and add a docs-render assertion to CI. Capture the real win — better endpoint discoverability — at the cost of roughly one day of engineering and near-zero long-term risk. Revisit upstream contribution only if we find ourselves maintaining a meaningfully larger fork.
How can I help you explore Laravel packages today?