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

Api Doc Bundle Laravel Package

nayzo/api-doc-bundle

Nayzo API Doc Bundle is a Laravel/PHP package that generates clear API documentation from your application's routes and annotations, helping teams publish searchable endpoint references, request and response details, and authentication notes without maintaining docs by hand.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the headline finding. Despite being framed as a Laravel/PHP package, nayzo/api-doc-bundle is a Symfony bundle and an explicit derivative ("enhanced version") of nelmio/api-doc-bundle. A TPM should treat this as the primary architectural fact, not a footnote: it means the package cannot be dropped into a Laravel application, and its behavior is defined by its relationship to a specific Nelmio major/minor line. The architecture fit for a Laravel stack is nil without a port; for a Symfony estate it is conditional on an undocumented Symfony + Nelmio + PHP version matrix.

What a TPM actually gets from this package. Three things, only one of which is code:

  1. A requirements artifact. It encodes a concrete opinion that upstream Nelmio output is not "decent" and specifies the presentation gaps (layout, grouping, auth flow clarity). That is worth harvesting regardless of whether the dependency is adopted.
  2. A directional signal. The existence of a fork at this point in Nelmio's history suggests the code-first documentation workflow is still painful for teams. That supports (or challenges) a roadmap decision — it is not itself a solution.
  3. A low-maturity dependency. 3 stars, 0 dependents, no issue volume. Zero downstream validation means no bug discovery, no CVE response path, no community-validated edge cases. You would be the QA team.

Technical risk: high.

  • Fork decay. Upstream Nelmio has moved to zircote/swagger-php attributes and a v4 architecture. A fork built on earlier annotation-driven generation is architecturally obsolete and diverges further with each upstream release.
  • Version-lock / silent break. Because the bundle decorates Nelmio internals, a routine upstream patch can break DI container compilation — the worst failure class, since docs generation typically runs in CI and fails hard at build time.
  • Supply chain. Single-org maintenance, low visibility. This requires an internal review gate before it touches any build pipeline.

Key questions to put to the requester/maintainer:

  1. What specifically does this add over upstream Nelmio — UI, grouping, auth annotations, response examples — and is any of it already native in Nelmio v4+?
  2. What are the composer.json constraints on symfony/*, nelmio/api-doc-bundle, and PHP? Is there a stated support matrix?
  3. Is this a maintained fork or a vendored snapshot? Last commit date, release tags, CI status?
  4. What license/attribution obligations are inherited from the upstream fork?
  5. What Laravel-native equivalent delivers the same developer experience (Scramble, Scribe, L5-Swagger)?

Integration Approach

Stack fit — do not adopt for Laravel. The TPM recommendation is to treat this package as a reference for output conventions and requirements, not as a dependency. If the underlying need is "generated, readable API docs for our APIs," Laravel has maintained native options that avoid the entire Symfony-fork risk surface:

Need Laravel-native option TPM note
Attribute-driven OpenAPI 3 generation Scramble Zero-annotation introspection; active maintenance
Annotation authoring + Swagger UI L5-Swagger (darkaonline/l5-swagger) Widely adopted; largest community surface
Human-readable docs + Postman/OpenAPI export Scribe Strong for internal/partner-facing docs
Contract-first governance Hand-authored openapi.yaml + CI lint Best fit for externally consumed APIs

Migration path (if a Symfony service already uses it). Migrate toward upstream, not away from it — replace the fork with current nelmio/api-doc-bundle + swagger-php attributes. The mechanical work is converting docblock annotations to PHP 8 attributes across every controller. Effort scales linearly with endpoint count, so sample 5 controllers before quoting an estimate.

Compatibility. Pin exact versions; assume no semver guarantee across Nelmio minors. Treat PHP 8 attribute support as a hard gate — an annotation-only fork is a dead end on PHP 8.4+/Symfony 7.

Sequencing (the TPM plan).

  1. Inventory consumers of the generated docs today — gateway import, SDK generation, contract tests, partner portal. This defines blast radius and whether this is a cosmetic or contractual surface.
  2. Timebox a one-week spike on the worst-documented API, producing a go/no-go, not an adoption decision.
  3. Prototype the replacement on a branch against 3–5 representative endpoints, including auth and error schemas.
  4. Diff generated OpenAPI output old vs. new. The schema diff is the real acceptance test — not visual inspection.
  5. Migrate highest-traffic endpoints first; retire the fork last, never first.
  6. Add a CI gate that diffs the committed spec on every PR to prevent silent drift going forward.

Operational Impact

Maintenance. No vendor support, no meaningful community. If adopted, you own the fork — including forward-porting security fixes for symfony/*, nelmio/api-doc-bundle, and swagger-php. Those patches land upstream, not here. Budget named stewardship headcount or expect bitrot within two Symfony minor cycles.

Support. The escalation path is "read the source." With no issue triage evidence, there is no one to ask when generation breaks the evening before a release.

Scaling. Runtime scaling is a non-issue — generation is build-time. The real constraint is organizational: the number of endpoints and teams authoring annotations, and the consistency of that authoring. A fork with undocumented behavior does not scale across teams because the conventions are unstated.

Failure modes to monitor.

  • Silent doc drift — generation succeeds but emits a contract that no longer matches implementation, poisoning gateway configs and generated SDKs. Highest severity because it is invisible until a consumer breaks.
  • DI container compile failure on any Symfony/Nelmio bump — hard build break.
  • Annotation-reader removal in modern Symfony/PHP — silent obsolescence.
  • CI doc-build becoming a deploy blocker for unrelated changes.
  • Fork divergence making upstream merges progressively more expensive.

Ramp-up. Low for engineers already fluent in Nelmio/Symfony — but that knowledge is non-transferable, undocumented, and does not generalize to the Laravel stack the team actually runs. Effective ramp-up is therefore high: you are teaching a small group a bespoke tool with no external knowledge base.

Bottom line for the decision record. Low maturity (3 stars, 0 dependents), wrong ecosystem for the stated stack, and structurally positioned as a decaying fork of an upstream that has already moved on. Recommend reject for adoption; harvest it as a requirements input when selecting a Laravel-native documentation tool, and route the decision to the spike-plus-go/no-go sequence above rather than an adoption vote.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource