mindy/query_builder
mindy/query_builder offers a fluent, Laravel-style PHP API for building SQL queries programmatically, with composable selects, joins, wheres, and bindings to keep database code readable and safe.
illuminate/database (Eloquent/Query Builder) as the single sanctioned query layer in Laravel-based products and to reject parallel query abstractions that fragment conventions, testing, and security review. A release that rewrites insert/update/delete/select syntax and changes escaping semantics is a concrete illustration of the maintenance tax a second query layer imposes.Consider it when:
doctrine/dbal semantics and shows how JSON column handling is layered on.Look elsewhere when:
illuminate/database query builder and Eloquent. This package is redundant.illuminate/database standalone, doctrine/dbal, cycle/orm, aura/sqlquery, or medoo.Red flags to weigh: ~7 years of dormancy followed by a major-version release that breaks the insert/update/delete/select query syntax; a change to escaping behaviour that alters injection-safety assumptions; no community footprint, no dependent packages, and no public evidence of a test matrix. A single release after years of silence is not a cadence — it is an unannounced ownership event.
To executives: This remains a small, permissively licensed utility with negligible strategic value (opportunity score ~24.6/100) and no ecosystem traction. The new 4.0.4 release does not change that: it is a breaking change to core query syntax plus a change to escaping behaviour, shipped without any public signal of ongoing support, test coverage, or a security disclosure process. Recommendation stands: do not adopt as a dependency. The low acquisition cost is still offset by unmaintained-code risk — and now also by upgrade risk.
To engineering: Cheap to read, expensive to own — and 4.0.4 makes ownership more expensive. The query syntax for select/insert/update/delete changed, so any code we wrote against 3.x would need rewriting; escaping is now exception-based, modelled on doctrine/dbal, which shifts the burden of correctness onto callers in ways that need explicit review. JSON field support is a genuinely useful capability, but it does not offset a bus factor of one and an unknown PHP 8.x test story. A one-to-two day spike to mine patterns is defensible if we have a real non-Laravel lightweight-service need; committing to composer.json is not.
Recommendation: Reject as a production dependency. Standardize on Laravel's native query builder. If we spike it as a design reference, pin an exact version and read 4.0.4 as the current state of the API, not 3.x. Revisit only if a concrete non-Laravel service materialises — at which point evaluate maintained alternatives (doctrine/dbal, aura/sqlquery, medoo) first and this package solely as a design reference. Decision asked of stakeholders: approve a timeboxed evaluation (≤2 days) or close the ticket.
How can I help you explore Laravel packages today?