Product Decisions This Supports
- Docs/developer-portal feature decision: ship an interactive API reference without building an OpenAPI renderer in-house. The bundle handles rendering from URLs, inline JSON/YAML, local files, or multiple OpenAPI documents.
- Build vs. buy: adopting Scalar's first-party Symfony bundle replaces a community-maintained dependency (
aleksanderfrolov/scalar-symfony) with a vendor-supported package (scalar/symfony), reducing maintenance and support risk for the docs surface.
- Multi-product API catalog roadmap: support for multiple OpenAPI documents in one integration makes it viable to consolidate several product APIs into one reference site rather than maintaining separate docs stacks.
- Branding/UX decision: the default Symfony theme with light and dark modes gives us a baseline look-and-feel; decide whether to accept the default or invest in customization.
- Release/operations policy: the default Scalar client URL is now unversioned and updates independently of Composer releases. This is a product-ops decision: pin an explicit CDN version in regulated or change-controlled environments, or accept continuous UI updates elsewhere.
- Migration decision: moving off the community bundle is low-friction (bundle, route, and configuration names preserved;
scalar_options kept as a deprecated alias), so the switch can be scheduled without a user-facing change.
- Framework standardization caveat: this is a Symfony bundle, not a Laravel package. If the roadmap assumes Laravel parity, this release does not deliver it — it should be tracked as a separate integration decision.
When to Consider This Package
Adopt when:
- You're on PHP 8.2+ and Symfony 6.4, 7.2+, or 8.x (subject to Symfony's own PHP requirements).
- You need to publish one or many OpenAPI/Scalar API references and want configuration-as-code (
configuration) plus standard bundle/route setup.
- You're currently on the community bundle and want a supported upgrade path with preserved naming and an explicit migration guide.
- You want a maintained dependency with regression, browser, fresh-Flex-install, production-install, and Windows compatibility checks.
Look elsewhere / proceed with caution when:
- You're on Laravel or another non-Symfony framework. Despite being framed as a general Laravel/PHP package, this artifact is Symfony-only; Laravel would need the Scalar JS client embedded directly or a separate integration.
- You need a versioned, self-hosted, air-gapped client. The default client URL is unversioned CDN; you'd need to set an explicit CDN/self-hosted URL and own the update cadence.
- You're on PHP < 8.2 or Symfony versions below 6.4.
- You require post-1.0 API stability or vendor SLA — this is v0.2.0, the first official release.
- You need framework-agnostic or multi-framework coverage from a single package.
How to Pitch It (Stakeholders)
Executive summary: Scalar has shipped the first official release of its Symfony bundle (v0.2.0), graduating a community-maintained integration into a vendor-supported one. It lets our team publish interactive API documentation directly from OpenAPI specs — sourced from URLs, inline JSON/YAML, local files, or multiple documents — with a default themed UI supporting light and dark modes, and minimal custom code. It supports PHP 8.2+ and Symfony 6.4, 7.2+, and 8.x, and ships with regression, browser, fresh-install, production-install, and Windows compatibility checks. Migration from the community bundle preserves bundle, route, and configuration names, keeping switching cost low.
For engineering: install via composer require scalar/symfony:^0.2.0; namespace is Scalar\Symfony; configure serializable options through configuration (scalar_options remains a deprecated alias). Review the migration guide before upgrading. Note the default Scalar client URL is now unversioned and updates independently of Composer releases — explicit CDN settings are preserved, so decide a pinning policy.
Risks to communicate: pre-1.0 versioning means the configuration surface may still change; the bundle is Symfony-specific, so this release does not unblock Laravel work even though it signals Scalar's investment in first-party framework integrations. Recommend confirming whether a Laravel path is on the roadmap before committing docs strategy to it.