nzour/symfony-advanced-resolving
A Symfony package that adds advanced resolving capabilities, making service and argument resolution more flexible and context-aware. It helps reduce boilerplate, simplify dependency wiring, and keep container configuration clean, readable, and maintainable in modern Symfony applications.
FromQuery::$disableTypeEnforcement turns a hard-coded behavior into a switch. That is a product decision, not just a technical one: do we reject ?page="2" (string) or coerce it? Strict = better error messages and safer downstream logic; lenient = fewer 400s and better tolerance of legacy/mobile clients. The PM now owns that trade-off explicitly instead of inheriting it.include=, or pagination on public/partner APIs is directly affected. If the team is hand-rolling $request->query('x') parsing today, this package is a candidate to standardize it before the surface grows.Consider it when:
$request->query() plus manual casting has started to sprawl.Look elsewhere when:
To executives: We are standardizing how our APIs read and validate query parameters — the filtering, sorting, and paging that every list endpoint exposes. The alternative is custom parsing code in every controller, which is where inconsistent validation and slow-to-diagnose 400s come from. This release adds a per-endpoint switch for how strictly we enforce types, which lets us tighten our API contract for new consumers without breaking older clients in the same release. It is a beta dependency, so the recommendation is a scoped pilot on one or two endpoints, with a decision to adopt or drop once it reaches 1.0 — not a platform-wide commitment.
To engineering: The new FromQuery::$disableTypeEnforcement flag replaces an all-or-nothing behavior with an explicit opt-out, so we can be strict by default and lenient where a client needs it. Two things to own: it is a static property, so it must be reset in the test base class and verified under Octane and queue workers to avoid state leaking across requests; and the package is pre-1.0, so isolate it behind a thin adapter in our own code so a breaking change is a one-file fix rather than a refactor. Upside is that query-param parsing becomes declarative and unit-testable instead of scattered through controllers.
How can I help you explore Laravel packages today?