2017 © Pedro Peláez
 

library query-scribe

Light SQL query builder designed for extensibility and flexibility

image

finesse/query-scribe

Light SQL query builder designed for extensibility and flexibility

  • Tuesday, June 19, 2018
  • by Finesse
  • Repository
  • 1 Watchers
  • 0 Stars
  • 689 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 11 Versions
  • 9 % Grown

The README.md

Query Scribe

Latest Stable Version Total Downloads PHP from Packagist Test Status Maintainability Test Coverage, (*1)

Provides a convenient object syntax to build SQL queries. Compiles the queries to an SQL text with values for binding. Doesn't perform queries to database., (*2)

$query = (new Query)
    ->from('posts')
    ->where('level', '>', 3)
    ->whereIn('category_id', function ($query) {
        $query
            ->addSelect('id')
            ->from('categories')
            ->where('categories.name', 'Interesting');
    })
    ->where(new Raw('MONTH(date)'), 4)
    ->orderBy('date', 'desc')
    ->limit(10);

$prefixer = new TablePrefixer('demo_');
$grammar = new MySQLGrammar();
$compiled = $grammar->compile($query->apply($prefixer));

echo $compiled->getSQL();
/*
    SELECT *
    FROM `demo_posts`
    WHERE
        `level` > ? AND
        `category_id` IN (
            SELECT `id`
            FROM `demo_categories`
            WHERE `demo_categories`.`name` = ?
        ) AND
        (MONTH(date)) = ?
    ORDER BY `date` DESC
    LIMIT ?
 */

echo $compiled->getBindings();
/*
    [3, 'Interesting', 4, 10]
 */

To perform compiled queries to a database, use a database connector like PDO, MicroDB or DBAL or use a ready database abstraction like MiniDB or Wired., (*3)

Key features:, (*4)

  • The builder has a single responsibility: build SQL.
  • Designed for further extension. You may build a database tool or an ORM on top of it without major problems. Examples will come soon.
  • Very flexible. You can pass a raw SQL or a subquery almost everywhere (see the PHPDoc comments in the code to know where you can pass them).
  • Smart table prefixes which consider table aliases (don't work in raw expressions).
  • All the values go to bindings, even from subqueries.
  • No dependencies. Requires only PHP ≥ 7.

Supported SQL dialects:, (*5)

  • MySQL
  • SQLite
  • ~~SQL Server~~ (not fully supported)
  • Maybe any other, didn't test it

If you need a dialect support please extend the CommonGrammar class and make a pull request., (*6)

Documentation

The documentation is available at queryscribe.readthedocs.io., (*7)

Also all the classes, methods and properties has a PHPDoc comment in the code., (*8)

Versions compatibility

The project follows the Semantic Versioning., (*9)

License

MIT. See the LICENSE file for details., (*10)

The Versions

19/06 2018

dev-master

9999999-dev https://github.com/Finesse/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql mysql sqlite query builder

13/03 2018

v0.8.0

0.8.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql mysql sqlite query builder

27/11 2017

v0.7.0

0.7.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql mysql sqlite query builder

12/11 2017

v0.6.0

0.6.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql mysql sqlite query builder

08/11 2017

v0.5.0

0.5.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

08/11 2017

v0.4.2

0.4.2.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

06/11 2017

v0.4.1

0.4.1.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

05/11 2017

v0.4.0

0.4.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

04/11 2017

v0.3.0

0.3.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

02/11 2017

v0.2.0

0.2.0.0 https://github.com/FinesseRus/QueryScribe

Light SQL query builder designed for extensibility and flexibility

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder

31/10 2017

v0.1.0

0.1.0.0 https://github.com/FinesseRus/QueryScribe

Extensible and flexible SQL query builder

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Surgie Finesse

database sql postgresql mysql sqlite query builder