luciano-jr/laravel-api-query-handler
Laravel API Query Handler parses and applies API query parameters in your Laravel apps—filtering, sorting, pagination, and relationship includes—so you can build flexible, consistent endpoints without repeating request-handling logic in every controller.
Summary: No substantive basis exists for a full evaluation — the package identity, source repository, dependency footprint, and prior assessment are all absent from the available data. The only signal is release 1.0.5, which is a single-line patch addressing config key naming. That is a narrow but non-trivial signal for a Laravel package, because config keys are part of the public contract once a consumer publishes the config file.
Architecture fit (provisional): The package follows the conventional Laravel package shape implied by the release note — a publishable config file, a service provider that merges defaults, and configuration-driven behavior. That is the standard, low-friction pattern and fits a typical Laravel application or modular monolith without architectural contention. It is not a fit for consumers that avoid publishable config (e.g. strict twelve-factor deployments that manage all configuration via environment variables only), unless the package supports env-var binding for every key. This cannot be confirmed from the release note.
Integration feasibility: Likely composer require plus php artisan vendor:publish --tag=config. The practical integration cost is low; the practical verification cost is not, because 1.0.5 renames fields in a config file. Any consumer who has already published the config, or who has hardcoded the old key names in a deployment manifest or .env file, must be checked individually.
Technical risk:
| Risk | Severity | Rationale |
|---|---|---|
| Config key rename shipped in a patch release | Medium | Renaming config field names is a breaking change for any consumer with a published config file or cached config. Shipping it under 1.0.5 rather than 1.1.0 implies either (a) the old names were never functional — a pure bug fix — or (b) semver is not being applied rigorously. Which one it is determines the real exposure. |
| Published-config drift | Medium | Laravel's vendor:publish does not overwrite existing files. Consumers who published at 1.0.4 keep the old keys and the package may silently fall back to defaults on the new keys, producing behavior that differs from documentation with no error. |
| Config cache staleness | Low–Medium | php artisan config:cache must be re-run on deploy; stale caches will hold old keys. Standard operational hygiene, but a common source of "works locally, broken in prod." |
| Unverifiable baseline | High | With no repository, changelog history, or test coverage data, no confidence claim can be made about the package's overall stability. This release does not resolve that gap. |
Key questions for the maintainer:
1.1.0 with a deprecation shim accepting both keys).config(), or also directly from env()? Direct env() calls outside config files break under config:cache and would compound the rename risk.Stack fit: Standard Laravel package integration — Composer autoload, package discovery via extra.laravel.providers, publishable config and (likely) migrations or routes. Compatible with Laravel's package auto-discovery, so no manual config/app.php registration is expected. Confirm the supported Laravel/PHP version matrix before adoption; a 1.0.x line with a config-shape bug suggests early maturity, so pinning to a tested minor is prudent.
Migration path: Treat 1.0.5 as a clean-install target, not an in-place upgrade, unless the maintainer confirms the old keys were non-functional.
composer update. Sequence: (1) diff the package's config/*.php against the published copy to enumerate renamed keys, (2) update the application's published config and any .env/secrets-manager entries, (3) php artisan config:clear && php artisan config:cache, (4) smoke-test the feature the package backs, (5) retain a rollback pin to 1.0.4.Compatibility: Config key renames are backward-incompatible for the published-config surface even when the package code is otherwise unchanged. Class-level and container-binding compatibility are unaffected. No evidence of PHP or Laravel version constraint changes in this release.
Sequencing:
Maintenance: Low ongoing code maintenance, but this release shifts cost onto consumers: the package's config surface is now known to change names. Budget for a config-key audit on each dependency bump rather than assuming patch releases are inert. Recommend Renovate/Dependabot with patch auto-merge disabled for this package until the maintainer demonstrates semver discipline across two or three releases.
Support: Expect a short burst of support tickets if any consumer upgrades without republishing config — the symptom will be "package silently ignored my settings," which is expensive to diagnose because it fails soft rather than loudly. Pre-empt with an internal note and a named owner for the upgrade. Vendor support responsiveness is unknown and should be assessed before this becomes load-bearing.
Scaling: Config-key renames do not affect runtime scaling characteristics. The scaling-relevant unknown is whether the package holds state or performs I/O per request — unevaluable from this release. If it is stateless and config-driven, horizontal scaling is unaffected.
Failure modes:
config:cache in the deploy pipeline.Ramp-up: Low. Any Laravel-fluent engineer can integrate this in under an hour; the config-key remediation for an existing install is a half-day of inventory and verification. The real ramp-up constraint is organizational, not technical — a single owner must be accountable for keeping published config in sync, otherwise this failure mode recurs at every version bump. Given the thin evidence base, recommend a time-boxed spike in a non-production service to validate the maintainer's documentation and config contract before committing the package to a production path.
How can I help you explore Laravel packages today?