kinetis / query-builder
A thin, parameterized SQL query builder for Kinetis — MySQL and Postgres via kinetis/persistence's drivers, row-to-DTO mapping via Kinetis\Validation\Hydrator. Not an ORM: no relationships, no migrations, no change-tracking.
Requires
- php: ^8.4
- kinetis/framework: ^1.8.1
- kinetis/persistence: ^1.3.0
Requires (Dev)
- infection/infection: ^0.35.0
- phpstan/phpstan: ^2.2.8
- phpunit/phpunit: ^13.3.3
- vimeo/psalm: ^6.17
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
kinetis/query-builder
A thin, parameterized SQL query builder for Kinetis
Part of Kinetis, a non-blocking PHP framework for API-first applications, developed in the kinetis-dev/kinetis monorepo.
Parameterized selects, joins, subqueries, set operations, CTEs, row
locks, inserts, upserts, updates and deletes over the SQL shared by
MySQL 8.4, MariaDB 11.4 and PostgreSQL 16, run through
kinetis/persistence's drivers, with row-to-DTO mapping via
Kinetis\Validation\Hydrator. Not an ORM: no relationships, no
change-tracking, no save()-on-a-model.
use Kinetis\QueryBuilder\Query; $orders = new Query($db) ->table('orders') ->where('customer_id', '=', $customerId) ->where('status', '!=', 'cancelled') ->orderBy('created_at', 'desc') ->limit(20) ->get(OrderRow::class); // OrderRow is your own row DTO
The connection's type selects the SQL dialect, and a Query built on a
transaction runs inside it.
Installation
composer require kinetis/query-builder
Requires PHP 8.4+, kinetis/framework,
and kinetis/persistence.
Full documentation:
kinetis.dev/docs/query-builder.html.
License
MIT — see LICENSE.