PHPackages                             mgcosta/spanner-orm-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. mgcosta/spanner-orm-builder

ActiveLibrary[Database &amp; ORM](/categories/database)

mgcosta/spanner-orm-builder
===========================

Google Spanner ORM With Query Builder

v0.0.5(4y ago)441[1 issues](https://github.com/mgcostaParedes/spanner-orm-builder/issues)MITPHPPHP ^7.3 || ^8.0

Since May 11Pushed 4y ago1 watchersCompare

[ Source](https://github.com/mgcostaParedes/spanner-orm-builder)[ Packagist](https://packagist.org/packages/mgcosta/spanner-orm-builder)[ RSS](/packages/mgcosta-spanner-orm-builder/feed)WikiDiscussions main Synced 5d ago

READMEChangelog (5)Dependencies (12)Versions (6)Used By (0)

Spanner ORM Builder For PHP
---------------------------

[](#spanner-orm-builder-for-php)

[![License](https://camo.githubusercontent.com/2e2b716d2d8fba834035506be90e2c19d7319423d7a1472a97dfaec65ff6aac8/68747470733a2f2f706f7365722e707567782e6f72672f6d67636f7374612f7370616e6e65722d6f726d2d6275696c6465722f6c6963656e7365)](//packagist.org/packages/mgcosta/spanner-orm-builder)[![Actions Status](https://github.com/mgcostaParedes/spanner-orm-builder/workflows/CI/badge.svg)](https://github.com/mgcostaParedes/spanner-orm-builder/actions)[![codecov](https://camo.githubusercontent.com/e64f9f9a45bbf003d13adc268441f2f6989c5205691ed7686694d9d7bac9a71f/68747470733a2f2f636f6465636f762e696f2f67682f6d67636f737461506172656465732f7370616e6e65722d6f726d2d6275696c6465722f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4f455559375a44544f50)](https://codecov.io/gh/mgcostaParedes/spanner-orm-builder)[![Total Downloads](https://camo.githubusercontent.com/0980a337e5848ba3d4f394ab0c0eb406341603ca856f8ff4c2d6407f6674e595/68747470733a2f2f706f7365722e707567782e6f72672f6d67636f7374612f7370616e6e65722d6f726d2d6275696c6465722f646f776e6c6f616473)](//packagist.org/packages/mgcosta/spanner-orm-builder)

The Spanner ORM Builder is a database toolkit to PHP, providing an expressive query builder, ActiveRecord style ORM, it can serve as a database layer for your PHP app if you intend to work with **Google Cloud Spanner**.

Install
-------

[](#install)

Via Composer

```
$ composer require mgcosta/spanner-orm-builder
```

### Usage Instructions

[](#usage-instructions)

First, we should create a new "Manager" instance. Manager aims to make configuring the library for every framework as easy as possible.

```
use MgCosta\Spanner\Manager;
use Google\Cloud\Spanner\Database;

// $database = your database instance for google cloud spanner;
// instance of Google\Cloud\Spanner\Database;

$manager = new Manager($database);
$manager->boot();
```

That's it, you're ready to use the library, just be sure to instantiate the manager as soon as possible on your APP, usually on your bootstrap or config file.

Once the Manager instance has been registered, we may use it like:

**Using The Query Builder**

```
use MgCosta\Spanner\Model\Model;

class User extends Model {}

$users = User::where('age', '>', 30)->get();

$id = 1;
$user = User::find($id);
```

**Updating/Deleting using the Query Builder**

```
use MgCosta\Spanner\Model\Model;

class User extends Model {}

// deleting
User::where('id', 1)->delete();

// updating
$status = User::where('id', 5)->update(['name' => 'Richard', 'age' => 30]);
```

**Saving a model**

```
use MgCosta\Spanner\Model\Model;

class User extends Model {

    protected $primaryKey = 'userId';

    // available strategies [uuid4, increment]
    // increment is not recommend by cloud spanner
    protected $keyStrategy = 'uuid4';

    // we must define the properties which corresponds to the columns of the table as public
    public $userId;
    public $name;
    public $age;
    public $email;
}

$user = new User();
$user->name = 'Miguel';
$user->age = 28;
$user->email = 'email@gmail.com';
$user->save();
```

**Using the query builder without Model Class**

```
use MgCosta\Spanner\Facade\SpannerDB;

(new SpannerDB())->table('users')->whereIn('id', [1, 2, 3])->get();

// you can also provide a custom spanner Database Instance
// $database = instance of Google\Cloud\Spanner\Database;
(new SpannerDB($database))->table('users')->where('id', 1)->first();
```

The implementation of the query builder is inspired on Laravel Query Builder, to get more documentation follow the [link](https://laravel.com/docs/master/queries).

Roadmap
-------

[](#roadmap)

You can get more details of the plans for this early version on the following [link](https://github.com/mgcostaParedes/spanner-orm-builder/projects/1).

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- \[Miguel Costa\]\[\]

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

5

Last Release

1809d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ba33beb898ddbda3f74be8a9db2dcb9629dfab34f5e94c710385ad0dfd9bd982?d=identicon)[mgcostaParedes](/maintainers/mgcostaParedes)

---

Top Contributors

[![mgcostaParedes](https://avatars.githubusercontent.com/u/16031444?v=4)](https://github.com/mgcostaParedes "mgcostaParedes (42 commits)")

---

Tags

cloud-spannerorm-builderphpquery-builder

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/mgcosta-spanner-orm-builder/health.svg)

```
[![Health](https://phpackages.com/badges/mgcosta-spanner-orm-builder/health.svg)](https://phpackages.com/packages/mgcosta-spanner-orm-builder)
```

###  Alternatives

[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[bavix/laravel-wallet

It's easy to work with a virtual wallet.

1.3k1.1M11](/packages/bavix-laravel-wallet)[dyrynda/laravel-model-uuid

This package allows you to easily work with UUIDs in your Laravel models.

4802.8M8](/packages/dyrynda-laravel-model-uuid)[google/cloud-bigquery

BigQuery Client for PHP

8817.2M41](/packages/google-cloud-bigquery)[directorytree/ldaprecord

A fully-featured LDAP ORM.

5782.9M10](/packages/directorytree-ldaprecord)[colopl/laravel-spanner

Laravel database driver for Google Cloud Spanner

101124.2k1](/packages/colopl-laravel-spanner)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
