stfalcon-studio/swagger-bundle
A Symfony bundle that integrates swagger-php to generate OpenAPI/Swagger documentation from PHP annotations, helping keep API specs in sync with your code and exposing interactive docs for your endpoints.
Status: Updated for v2.0.0 (breaking). Prior assessment was empty; this is the baseline, written against the v2.0.0 release rather than v1.1.1.
Architecture fit
stfalcon-studio/SwaggerBundle is a Symfony bundle that wires zircote/swagger-php into a Symfony application (DI extension, routes/controllers, config tree). It is not a Laravel service provider package. Its architectural home is a Symfony kernel, not an Eloquent/HTTP-kernel Laravel app.darkaonline/l5-swagger (also backed by swagger-php). Choosing this package means either (a) we are running Symfony components or a Symfony sub-application inside our platform, or (b) we are adopting it as a reference/upstream for annotation conventions while using a different runtime integration.Integration feasibility
symfony/* constraints at ^8.0, which in turn implies a minimum PHP of 8.4 and removal of Symfony 6.x/7.x support from the constraint range.symfony/http-foundation, symfony/console, symfony/process, symfony/routing, etc.). While Laravel's framework ships Symfony 7.x, a package requiring symfony/*: ^8.0 will be unsatisfiable alongside laravel/framework — Composer will refuse to resolve, and forcing it (--with-all-dependencies, constraint overrides, replace/provide tricks) is not a supportable production posture.Technical risk
symfony/*: ^8.0 floor in a Laravel application is unresolvable until the framework major catches up. Any transitive dependency that adopts this line early will hard-block our upgrade path in the other direction too.swagger-php was also bumped, and no note on PHP floor, config schema changes, or removed bundle configuration keys. A major version with this little documentation is a governance problem regardless of the code quality.swagger-php and Symfony's DI/config component APIs. A Symfony 8 move likely touches bundle extension/config loading, which is exactly the surface a Laravel-side bridge would depend on.Key questions
composer.json requirement set in v2.0.0 — Symfony constraint range, PHP floor, and swagger-php version?l5-swagger instead and treat this repo as a signal only.Stack fit
l5-swagger (swagger-php at the same layer), and this bundle is out of scope. That decision should be made explicitly and recorded, not left implicit.Migration path
^1.1 (or the Laravel-native alternative), document the pin with a reason and an expiry, and open a tracked work item gated on "our Laravel major ships Symfony 8."Compatibility
composer why-not stfalcon-studio/swagger-bundle 2.0.0 against each application to get a definitive, per-repo answer rather than reasoning about it — this converts an ambiguous risk into a concrete conflict list.swagger-php was bumped in lockstep; if so, annotation attribute behavior and output formatting may shift, which affects snapshot tests.Sequencing
Maintenance
Support
Scaling
swagger-php characteristic, unchanged by this release.Failure modes
composer.json.--ignore-platform-reqs or constraint overrides to make v2.0.0 install. Produces an untested framework/component mix; symptoms surface far from the cause.SwaggerBundle in composer.json and reasonably assumes it is the standard Laravel choice. Document the decision and the pin rationale in the repo, not just in this assessment.Ramp-up
swagger-php attribute syntax are each small but non-obvious; budget roughly a day to first productive change, more if an adapter layer exists.How can I help you explore Laravel packages today?