I'm pleased to announce a new version of pg_builder, updated to support new syntax features of upcoming Postgres 10. Its sister package pg_wrapper is updated as well.

What's more important, both packages now have user documentation.


pg_builder version 0.2.1
---------------------------

pg_builder is a query builder for Postgres backed by a partial PHP reimplementation of PostgreSQL's own query parser. Current version supports all syntax available for SELECT (and VALUES), INSERT, UPDATE, and DELETE queries in Postgres 10 with minor omissions.

* Query is represented by an Abstract Syntax Tree consisting of Nodes. This is quite similar to what Postgres does internally. * Query parts (e.g. new columns for a SELECT or parts of a WHERE clause) can usually be added to the AST either as Nodes or as strings. Strings are processed by parser, so query being built is automatically checked for correct syntax. * Nodes can be removed and replaced in AST (e.g. calling join() method of a node in FROM clause replaces it with a JoinExpression node having the original node as its argument). * AST can be analyzed and transformed, the package takes advantage of this to allow named parameters like :foo instead of standard PostgreSQL's positional parameters $1 and to infer parameters' types from SQL typecasts.

pg_builder can be used on its own, but using it together with pg_wrapper allows to run the built queries and to leverage transparent conversion of query parameters to Postgres types.

Requirements
---------------

PHP 5.3+

Links
--------

Source: https://github.com/sad-spirit/pg-builder
Documentation: https://github.com/sad-spirit/pg-builder/wiki

The package is installable with Composer
$ composer require sad_spirit/pg_builder




pg_wrapper version 0.2.2
---------------------------

pg_wrapper wraps around functions of PHP's pgsql extension and provides transparent conversion of database types to their PHP equivalents

Postgres types supported
 * Numeric types, character types, boolean, bytea
 * Date and time types, intervals
 * Arrays of any base type
 * Ranges of any base type
 * Composite types
 * json / jsonb
 * Geometric types
 * hstore (from contrib/hstore)

For those types where a corresponding native PHP type or class is available it is used (text -> string, timestamp -> DateTime, interval -> DateInterval, hstore -> associative array, etc.). For other types (geometric types, ranges) the package provides custom classes.

Conversion of query result fields is done automatically using database metadata, query parameters may require specifying type:

$connection->executeParams(
    'select typname from pg_catalog.pg_type where oid = any($1) order by 
typname',
    [[21, 23, 25]],
    ['integer[]']
);

Requirements
---------------

PHP 5.3+ with pgsql extension.


Links
--------

Source: https://github.com/sad-spirit/pg-wrapper
Documentation: https://github.com/sad-spirit/pg-wrapper/wiki

The package is installable with Composer
$ composer require sad_spirit/pg_wrapper





--
Sent via pgsql-announce mailing list (pgsql-announce@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-announce

Reply via email to