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

Rest Laravel Package

friendsofsymfony/rest

FOSRestBundle provides tools for rapidly building RESTful APIs with Symfony, including format handling, view listeners, routing conventions, and request body decoding. It simplifies controller setup for JSON, XML, and other response formats while staying flexible and configurable.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for API plumbing — decided once, not per service. This package exists to solve a recurring class of problems: content negotiation from Accept headers, request-body decoding, response serialization, and mapping exceptions to consistent HTTP status codes. Evaluating it forces an explicit decision on whether those concerns are (a) bought as a library, (b) supplied by the framework's native HTTP layer, or (c) built in-house as thin, owned middleware. For a Laravel product the answer is (b) plus a small amount of (c); the value of this evaluation is documenting that decision so it stops being re-litigated for every new service.

  • A "standards and error contracts" roadmap item. The most durable output of this package is conceptual, not code. Its four listener concerns — format negotiation, view/response shaping, body decoding, and normalized error handling — are a ready-made checklist for a written API contract standard: one error envelope, consistent status-code mapping, content-type rules, and versioning conventions. That standard is a legitimate, schedulable workstream independent of whether the package is ever installed.

  • API surface and deprecation policy. The package's conventions imply choices about URI versioning vs. content-type-driven versioning, and about how routes and formats are declared at the controller level. Those choices leak into client-facing contracts, so they anchor roadmap conversations about backward compatibility windows and deprecation commitments to partners and mobile clients.

  • Dependency governance and third-party risk posture. Discovering this in a dependency tree is a policy decision point: do we permit archived libraries, and if so under what conditions (frozen service, no untrusted input, owned fork, dated migration ticket)? That policy has budget implications and is worth setting centrally rather than case by case.

  • Platform-fit as a scoping correction. Despite being filed alongside Laravel/PHP packages, this is a Symfony package (FriendsOfSymfony), built on Symfony's HTTP foundation and event dispatcher. For Laravel services it is out of scope entirely. Logging this now prevents wasted spikes and keeps build-vs-buy comparisons honest.

  • Remediation and migration sizing. Zero dependents and a 2013 last release mean the realistic product use of this package is as an inventory item: if it appears anywhere in our estate, the PM decision is to size a migration, not to adopt or fork.

Bottom line: use it as reference material for defining an API contract standard and a dependency policy; do not put it in the product's dependency graph.

When to Consider This Package

Consider it only in the narrow legacy case, where all of the following hold:

  • You maintain a Symfony 2.x-era application (circa 2013) that already depends on it, and the work is a narrowly scoped patch rather than new capability.
  • The service is frozen and not exposed to untrusted input, so the absence of security releases is not a live exposure today.
  • You have, or will fund, an owned and tested fork — accepting full maintenance responsibility.
  • The cost of migrating genuinely exceeds the cost of carrying the debt for the service's remaining lifetime.

Look elsewhere in essentially every other case. Concretely, do not adopt when:

  • The target stack is Laravel. Use framework-native routing, form requests, API resources, middleware, and centralized exception rendering. There is no interoperability story — no service provider, no Laravel lifecycle hooks, no modern PHP compatibility evidence.
  • The target stack is modern Symfony. The maintained lineage is FOSRestBundle (itself deprecated) and the preferred path is API Platform plus native #[Route], MapRequestPayload, and #[Serialize].
  • You need security patching, PHP 7/8 support, PSR compliance, or maintainer responsiveness. Last release October 2013; repository archived.
  • You need community proof. ~51 stars and zero dependents means near-zero real-world validation, no answer ecosystem, no third-party integrations, and bug reports that will go unanswered.
  • You need a contract-first artifact (OpenAPI/JSON Schema) to drive client generation or partner onboarding — this predates that practice.

Adoption criteria summary: treat archival status, release recency, dependent count, and platform fit as hard gates. This package fails all four. The only passing path is legacy maintenance of an existing installation.

How to Pitch It (Stakeholders)

For executives. There is nothing to buy here. This library was a reasonable idea in 2013, but it is archived, has shipped no release in over a decade, and has no downstream users to validate it. Adopting it would mean owning an unmaintained PHP component ourselves, with no security-patch path — a liability carried for the life of the product — in exchange for functionality current frameworks already provide at zero marginal cost. Recommendation: do not adopt; no budget line. If it appears anywhere in our dependency inventory, log it as tech debt with a migration ticket and an owner.

For engineering. Two takeaways. First, a scope correction: this is a Symfony package, not a Laravel one, so for Laravel services it is simply out of scope — no spike required. Second, the requirements it documented are still ours to satisfy: consistent exception-to-HTTP-status mapping, content negotiation, request-body decoding, and versioning conventions. Capture those as a short written API standard and implement them with framework primitives plus owned middleware. Where we have Symfony surface, the maintained path is FOSRestBundle or API Platform — never this repository. Treat the repo as design vocabulary (format listener, view listener, body listener, param fetcher), not as a dependency.

The ask.

  1. Approve a one-page API contract standard derived from this package's concerns (error envelope, status mapping, content negotiation, versioning).
  2. Confirm a default-block policy for archived, zero-dependent dependencies, with an explicit exception process.
  3. If any service already depends on it, sponsor a migration estimate behind a gateway (strangler pattern, endpoint group by endpoint group) rather than a fork.
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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route