Bit Badger Documents PHP implementation with PDO
Go to file
2024-10-01 21:35:17 -04:00
src Change doc list hasItems and items to properties 2024-10-01 18:39:57 -04:00
tests Change doc list hasItems and items to properties 2024-10-01 18:39:57 -04:00
.gitattributes Exclude tests and other files 2024-06-09 20:50:43 -04:00
.gitignore Add PostgreSQL Support (#3) 2024-06-21 13:46:41 +00:00
composer.json Update to PHP 8.4, new option lib 2024-09-30 23:39:23 -04:00
composer.lock Update to PHP 8.4, new option lib 2024-09-30 23:39:23 -04:00
LICENSE Initial commit 2024-06-03 23:07:15 +00:00
README.md Add v1/v2 information to README 2024-10-01 21:35:17 -04:00

PDODocument

This library allows SQLite and PostgreSQL to be treated as document databases. It is a PHP implementation of the .NET BitBadger.Documents library.

Add via Composer

Static Badge     Packagist Version

composer require bit-badger/pdo-document

For the v1 series, the DocumentList type's members hasItems and items are functions; in the v2 series, they are properties. Additionally, the Option and Result types included in the project have a similar difference; see the v1 README for PHP 8.2 or 8.3 and the v2 README for PHP 8.4. Both versions are supported; the v1 / v2 distinction helps composer make the right choice based on the target PHP version of your project.

Configuration

Connection Details

The PDO data source name must be provided via Configuration::useDSN(). Configuration also has $username, $password, and $options variables that will be used to construct the PDO object it will use for data access.

Document Identifiers

Each document must have a unique identifier. By default, the library assumes that this is a property or array key named id, but this can be controlled by setting Configuration::$idField. Once documents exist, this should not be changed.

IDs can be generated automatically on insert. The AutoId enumeration has 4 values:

  • AutoId::None is the default; no IDs will be generated
  • AutoId::Number will assign max-ID-plus-one to documents with an ID of 0
  • AutoId::UUID will generate a v4 UUID for documents with an empty string ID
  • AutoId::RandomString will generate a string of letters and numbers for documents with an empty string ID; Configuration::$idStringLength controls the length of the generated string, and defaults to 16 characters

In all generated scenarios, if the ID value is not 0 or blank, that ID will be used instead of a generated one.

Usage

Full documentation is available on the project site.