pdo-document/README.md

2.1 KiB

PDODocument

This library allows SQLite (and, by v1.0.0-beta1, PostgreSQL) to be treated as a document database. It is a PHP implementation of the .NET BitBadger.Documents library.

Add via Composer

Packagist Version

composer require bit-badger/pdo-document

Configuration

Connection Details

The static variable Configuration::$pdoDSN must be set to the PDO data source name for your database. 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

Documentation for this library is not complete; however, its structure is very similar to the .NET version, so its documentation will help until its project specific documentation is developed. Things like Count.All() become Count::all, and all the byField operations are named byFields and take an array of fields.