Lanzamiento de pg_builder 3.2 y pg_wrapper 3.3 con soporte para Postgres 18
Me complace anunciar el lanzamiento de los paquetes PHP de pg_builder y pg_wrapper actualizados para Postgres Postgres 18.
pg_builder 3.2
pg_builder es un generador de consultas para Postgres respaldado por una reimplementación parcial en PHP del propio analizador SQL de PostgreSQL. Soporta casi toda la sintaxis disponible en Postgres 18 para consultas SELECT
(y VALUES
), INSERT
, UPDATE
, DELETE
y MERGE
.
Con pg_builder es posible empezar con una consulta escrita manualmente, convertirla en un Árbol de Sintaxis Abstracta, añadir partes de la consulta (ya sea como objetos Node
o como cadenas) al árbol o eliminarlas, y finalmente convertir nuevamente el árbol en una cadena SQL.
Lo más destacado:
- Soporte para la nueva sintaxis de PostgreSQL 18: alias para
OLD
yNEW
en la cláusulaRETURNING
de las sentencias DML - Los objetos nodo utilizan
WeakReference
para mantener un enlace con su nodo padre, lo que evita las referencias circulares y permite realizar la recolección de residuos de fragmentos AST.
Es posible descargar el paquete de GitHub o instalarlo con Composer:
$ composer require sad_spirit/pg_builder
pg_wrapper 3.3
pg_wrapper proporciona convertidores para los tipos de datos de PostgreSQL y un conector orientado a objetos para la extensión nativa pgsql de PHP que utiliza estos convertidores. La conversión de campos de resultados de una consulta se realiza automáticamente mediante los metadatos de la base de datos. Los parámetros de la consulta pueden requerir la especificación del tipo.
Para aquellos tipos que cuenten con un tipo o clase nativa de PHP correspondiente, se utilizará ese tipo (text
-> string
, timestamp
-> DateTimeImmutable
, hstore
-> array asociativo, etc.). Para los demás tipos (tipos geométricos, rangos) el paquete proporciona clases personalizadas. Si los tipos de la base pueden ser convertidos, entonces los tipos compuestos, los arrays, los rangos que los utilizan también podrán ser manejados.
Lo más destacado:
- Nuevos códigos de error de PostgreSQL 18.
Es posible descargar el paquete de GitHub o instalarlo con Composer:
$ composer require sad_spirit/pg_wrapper