Download the PHP package patrick-hanna/database-crud-buffer without Composer
On this page you can find all versions of the php package patrick-hanna/database-crud-buffer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package database-crud-buffer
Database CRUD Buffer
Buffer Laravel database writes — inserts, upserts, updates, and deletes — and flush
them as a minimal set of merged SQL statements. Rows for the same table collapse
into single multi-row statements, repeated writes to the same key merge, and
compatible deletes fold into where … in (…) clauses.
Built on Laravel's query builder (illuminate/database) and the DB facade.
Installation
Requires PHP 8.2+ and Laravel 11 or 12. The php-ds
polyfill is pulled in automatically; installing the ds PHP extension improves
performance but is optional.
Usage
Every write target accepts either a literal table name or an Eloquent model class — the model's table name is resolved automatically.
By default the buffer auto-flushes once ~50,000 buffered items accumulate, inside a database transaction. Both are configurable:
Insert
Rows are buffered per table and emitted as one multi-row insert at flush time.
Column sets are normalized (missing columns become null) and rows that normalize
to the same shape are deduplicated.
Upsert
Writes bucket by table, unique key, and update-column list. Repeated writes to the
same unique row merge before flush. originalValues supplies fallback data to build
a complete insert row without widening the on-conflict update set.
Update
Updates sharing a normalized filter set merge into a single statement, regardless of the order the filters were supplied.
Delete
Deletes that differ in exactly one =/in filter fold into a single
where … in (…) statement at flush time.
Flushing
Flush order is always inserts → upserts → updates → deletes. On success the buffer is cleared and its size counter resets.
Testing
License
MIT
All versions of database-crud-buffer with dependencies
illuminate/database Version ^11.0 || ^12.0
illuminate/support Version ^11.0 || ^12.0
php-ds/php-ds Version ^1.4