- Can I use mnugter/jsonapi-rql-finder-bundle in a Laravel application?
- Not as shipped. This is a Symfony bundle that depends on Symfony bundle registration, DI service definitions, and paknahad/jsonapi-bundle, with no service provider, facade, or Laravel config publish path. The reusable part is the RQL query-string parsing and predicate model, not the Symfony glue. Plan to reimplement or port the parser before expecting it to work in Laravel.
- How do I install mnugter/jsonapi-rql-finder-bundle?
- Installation is Composer-based, but it assumes a Symfony application: you register the bundle in bundles.php and rely on its service definitions plus paknahad/jsonapi-bundle. There is no Laravel installation path, no artisan command, and no configuration file to publish. In a Laravel app, the package will not boot or wire itself automatically.
- Does this package support Laravel 10 or Laravel 11?
- No Laravel version is supported because the package is not built for Laravel. Its PHP and Symfony constraints are likely pinned to the 2021–2022 era, and the dependency on paknahad/jsonapi-bundle compounds compatibility risk. There is no test coverage against any Laravel release. Expect conflicts with current framework versions if you try to install it alongside Laravel.
- What is RQL and why would I use it for API filtering?
- RQL, or Resource Query Language, is a syntax for expressing filters, sorting, and pagination in request query strings. It gives API consumers a documented, expressive contract instead of ad-hoc query parameters. The durable value here is the RQL syntax contract your clients see, not the Symfony-specific finder implementation.
- What are the best alternatives for Laravel API filtering?
- For most Laravel applications, spatie/laravel-query-builder or Laravel JSON:API's native filter support solves the same problem with active maintenance and first-class Eloquent integration. A custom parser is also reasonable if you specifically need the RQL grammar. Choose the maintained Laravel option unless an external contract mandates RQL.
- Is mnugter/jsonapi-rql-finder-bundle actively maintained?
- The package shows seven stars, zero dependents, and a last release date of 2022-03-21, which suggests it is effectively dormant. It is single-maintainer with no downstream validation or evidence of production use at scale. There is no security patching path, so adopting it means accepting long-term maintenance risk.
- How would I port this Symfony bundle to Laravel?
- Fork the repository, strip the Symfony bundle wiring and DI definitions, keep the RQL parser and predicate model, and rewrite the Doctrine query-builder translation against Eloquent. Start with a one-to-two-day spike to determine how much of the code is parser versus Symfony and Doctrine glue. If you take this path, you own the fork and its maintenance permanently.
- What security risks come with exposing an RQL filter DSL to clients?
- Two risks stand out: arbitrary field access, such as filtering on password_hash or traversing relations a client should not reach, and parser denial-of-service through deeply nested or pathological expressions. Any adoption needs a strict allowlist of filterable fields plus depth and complexity limits. This package is not positioned to enforce either for you.
- Can I use this bundle with Eloquent or Doctrine in a Laravel app?
- The finder is built around Doctrine's query builder, so Eloquent is not supported at all. Running Doctrine inside Laravel is technically possible, but it does not solve the Symfony bundle lifecycle, DI wiring, or paknahad/jsonapi-bundle dependency. Treat this as a Symfony integration, not a Laravel one.
- How should I test RQL filtering if I port this to Laravel?
- The package has no Laravel test coverage, so you would need to write your own feature tests around the parser and the Eloquent query translation. Cover allowlisted fields, sort direction handling, pagination boundaries, and rejection of nested or overly complex expressions. Testing the parser separately from the query builder keeps the port maintainable.