v1.50.2 — Kochab
Theme: @queryParam route-doc tag. Route docblocks can now document query parameters with an editor-clean @queryParam name:type="…" tag that the OpenAPI generator actually parses — avoiding the IDE/Intelephense false positives (P1133) caused by overloading the reserved @param tag — and a latent doc-gen bug that dropped path params from any route which also declared a parameter is fixed. Framework-only — no env vars, no migrations, no API breaks. The api-skeleton ^1.50.1 constraint already permits 1.50.2.
Added
@queryParamroute doc tag.CommentsDocGeneratornow parses@queryParam <name>:<type>="description" [{required}]in route docblocks, emitting anin: queryOpenAPI parameter. It's an editor-clean alternative to the positional@param <name> query <type> <bool> "desc"form — the reserved@paramtag makes IDEs/Intelephense mis-read the location/type tokens as undefined PHPDoc types (P1133). The legacy@paramform still parses unchanged.
Fixed
- Route path parameters are no longer dropped when a query parameter is also documented.
CommentsDocGeneratorpreviously auto-derived{name}path params from the URL only when no parameters were documented at all, so a route declaring a query param plus a{id}in its path silently lost the path param from its OpenAPI spec. Path params are now always derived from the URL and merged with documented params (de-duplicated by name; an explicit path-param docblock still wins). Pinned bytests/Unit/Support/Documentation/CommentsDocGeneratorParamTest.php.
Changed
routes/resource.phpmigrated to@queryParam. The/data/{table}list endpoint'spage/limit/sort/orderquery parameters now use the@queryParamtag (so they actually appear in the generated OpenAPI — the previous@parametertag was never parsed), and the redundant@parameterpath-param docblocks were removed (path params auto-derive from the route URL). No runtime change.