atoms/database-illuminate

Illuminate bridge for Atoms: the Laravel query builder and Eloquent models against an Atom's own SQLite database.
16
Install
composer require atoms/database-illuminate
Latest Version:0.6.0
PHP:^8.3
License:MIT
Last Updated:Sep 5, 2026
Links: GitHub  ·  Packagist
Maintainer: dabernathy89

atoms/database-illuminate

The Laravel query builder and Eloquent models against an Atom's own SQLite database. This package runs inside the Atom — add it to atoms-composer.json (together with illuminate/database), not to your application's composer.json:

{
    "require": {
        "atoms/database-illuminate": "^0.6",
        "illuminate/database": "^12.0"
    }
}
use Atoms\Atom;
use Atoms\DatabaseIlluminate\EloquentBridge;

class GameRoom extends Atom
{
    public function record(string $player, int $score): array
    {
        $db = EloquentBridge::boot($this->db());

        $db->table('scores')->insert(['player' => $player, 'score' => $score]);

        return Score::query()->orderByDesc('score')->limit(10)->get()->toArray();
    }
}

Three deliberate differences from a stock Laravel connection, all inherited from the runtime the Atom executes in:

  • Nested transaction() calls reuse the outer transaction instead of creating savepoints — the same semantics as db()->transaction(). Roll an inner transaction back by throwing; a hand-called rollBack() inside a nested transaction() discards the entire write set and the enclosing wrappers then fail loudly on the already-closed transaction. afterCommit()/afterRollBack() hooks are unsupported (no transactions manager is installed; they throw).
  • Schema work is refused (ATOMS-E106): Atoms migrations own DDL.
  • getServerVersion() answers from configuration (the runtime cannot ask the engine), overridable via the server_version connection config key.

Eloquent models never cross the Atom boundary — return ->toArray() shapes from Atom methods. See the Atoms documentation for the full semantics notes, including the wide-integer (int64) limits of the Cloudflare runtime.

Development and support

This package is developed in the Atoms monorepo. Its standalone repository is a read-only distribution mirror; report issues and send pull requests to the monorepo. Licensed under the MIT License.

Related Packages

ablunier/laravel-database

Laravel database utilities package. Repository, cache, abstraction layer.

4,453 1
czim/laravel-pxlcms

Laravel adapter for the PXL CMS

1,634 2
czim/laravel-repository

Repository for Laravel (inspired by and indebted to Bosnadev/Repositories)

115,380 52
czim/laravel-filter

Filter for Laravel Eloquent queries, with support for modular filter building

77,299 89
baum/baum

Baum is an implementation of the Nested Set pattern for Eloquent models.

1,693,401 2,222