我很高兴地宣布,PHP 的 pg_builder 和 pg_wrapper 包已更新以支持 Postgres 18。
pg_builder 是一个 Postgres 的查询构建器,它部分 PHP 重实现了 PostgreSQL 自己的 SQL 解析器。它支持 Postgres 18 中几乎所有可用的 `SELECT`(及 `VALUES`)、`INSERT`、`UPDATE`、`DELETE` 和 `MERGE` 查询语法。
使用 pg_builder,您可以从手动编写的查询开始,将其解析为抽象语法树(AST),然后向该树添加查询部分(可以是 Node 对象或字符串)或移除它们,最后将树转换回 SQL 字符串。
发行亮点
您可以从 GitHub 下载该包,或使用 Composer 进行安装
$ composer require sad_spirit/pg_builder
pg_wrapper 提供了 PostgreSQL 数据类型的转换器,以及一个使用这些转换器的 PHP 原生 pgsql 扩展的面向对象封装。查询结果字段的转换是使用数据库元数据自动完成的,查询参数可能需要指定类型。
对于存在对应原生 PHP 类型或类的类型(`text` -> `string`,`timestamp` -> `DateTimeImmutable`,`hstore` -> 关联数组等),将使用它们。对于其他类型(几何类型、范围类型),该包提供了自定义类。如果基础类型可以被转换,那么使用它的复合类型、数组、范围也可以被自动处理。
发行亮点
您可以从 GitHub 下载该包,或使用 Composer 进行安装
$ composer require sad_spirit/pg_wrapper