src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
LICENSE | ||
README.md |
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
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 generatedAutoId::Number
will assign max-ID-plus-one to documents with an ID of 0AutoId::UUID
will generate a v4 UUID for documents with an emptystring
IDAutoId::RandomString
will generate a string of letters and numbers for documents with an emptystring
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 (writing it is one of the goals before the “beta” tag is dropped); 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.