我很榮幸地宣布 pg_builder 和 pg_wrapper PHP 套件已更新,支援 Postgres 16 語法,以及 pg_gateway 的首次發布。
pg_builder 是一個 Postgres 的查詢建構器,以 PHP 部分重新實作 PostgreSQL 自己的 SQL 解析器為基礎。它幾乎支援 Postgres 16 中所有可用的 SELECT
(和 VALUES
)、INSERT
、UPDATE
、DELETE
和 MERGE
查詢語法。
使用 pg_builder,可以從手動編寫的查詢開始,將其解析為抽象語法樹 (Abstract Syntax Tree),將查詢部分(以 Node
物件或字串形式)新增到此樹中或將其移除,最後將樹轉換回 SQL 字串。
新版本增加了對 PostgreSQL 16 中新增功能的支援
IS JSON
謂詞、聚合函數 json_arrayagg()
和 json_objectagg()
、建構函數 json_array()
和 json_object()
。FROM
子句中子查詢的可選別名,新增 SYSTEM_USER
伺服器變數,XMLSERIALIZE()
表達式的 [NO] INDENT
選項。可以從 Github 下載 該套件,或使用 Composer 安裝
$ composer require sad_spirit/pg_builder
pg_wrapper 提供了 PostgreSQL 資料類型轉換器,以及一個圍繞 PHP 原生 pgsql 擴展的 OO 封裝器,該封裝器使用這些轉換器。查詢結果欄位的轉換使用資料庫元資料自動完成,查詢參數可能需要指定類型。
對於那些有相應的 PHP 原生類型或類別可用的類型,將使用它(text -> string,timestamp -> DateTimeImmutable,hstore -> 關聯陣列等等)。對於其他類型(幾何類型、範圍),該套件提供了自訂類別。
新版本增加了對 PostgreSQL 16 中新增功能的支援
可以從 Github 下載 該套件,或使用 Composer 安裝
$ composer require sad_spirit/pg_wrapper
這是一個基於 pg_wrapper 和 pg_builder 套件構建的 Table Data Gateway 實作。它增加了以下功能
與往常一樣,可以從 Github 下載 該套件,或使用 Composer 安裝
$ composer require sad_spirit/pg_gateway