1 Commits
v3.0.0 ... v2

5 changed files with 417 additions and 279 deletions

View File

@@ -1,17 +1,21 @@
# PDODocument
This library allows SQLite and PostgreSQL to be treated as document databases. It is a PHP implementation of the .NET [BitBadger.Documents](https://git.bitbadger.solutions/bit-badger/BitBadger.Documents) library.
This library allows SQLite and PostgreSQL to be treated as document databases. It is a PHP implementation of the .NET [BitBadger.Documents](https://relationaldocs.bitbadger.solutions/dotnet/) library.
## Add via Composer
[![v1 Packagist Version](https://img.shields.io/badge/v1.1.0-blue?label=php%208.2)
](https://packagist.org/packages/bit-badger/pdo-document#v1.1.0-rc1)     [![Packagist Version](https://img.shields.io/packagist/v/bit-badger/pdo-document?include_prereleases&label=php%208.4)
](https://packagist.org/packages/bit-badger/pdo-document)
[![v1 Packagist Version](https://img.shields.io/badge/v1.2.0-blue?label=php%208.2)
](https://packagist.org/packages/bit-badger/pdo-document#v1.2.0)     [![Packagist Version](https://img.shields.io/badge/v2.2.0-blue?label=php%208.4)
](https://packagist.org/packages/bit-badger/pdo-document#v2.2.0)
`composer require bit-badger/pdo-document`
`composer require bit-badger/pdo-document:^2`
_(Version 2 requires PHP 8.4 or greater.)_
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](https://git.bitbadger.solutions/bit-badger/inspired-by-fsharp/src/branch/v1/README.md) for PHP 8.2 or 8.3 and the [v2 README](https://git.bitbadger.solutions/bit-badger/inspired-by-fsharp/src/branch/main/README.md) 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.
v1.2 and v2.2 add a `Field->andQualifier()` function to modify the qualifier for a field and return the same instance.
## Configuration
### Connection Details

662
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -121,6 +121,18 @@ class Field
: $fieldPath . ' ' . $this->op->toSQL() . $criteria;
}
/**
* Set a qualifier for the field, returning the modified field
*
* @param string $qualifier The table qualifier to use for the field
* @return Field The field instance with the qualifier set
*/
public function andQualifier(string $qualifier): Field
{
$this->qualifier = $qualifier;
return $this;
}
/**
* Create parameter names for an IN clause
*

View File

@@ -1,7 +1,7 @@
#!/bin/bash
export PDO_DOC_PGSQL_HOST=localhost:8301
PG_VERSIONS=('13' '14' '15' '16' 'latest')
PG_VERSIONS=('14' '15' '16' '17' 'latest')
for PG_VERSION in "${PG_VERSIONS[@]}"
do

View File

@@ -192,6 +192,12 @@ describe('->toWhere()', function () {
})->group('sqlite');
});
describe('->andQualifier()', function() {
test('adds a qualifier', function () {
expect(Field::equal('that', '82')->andQualifier('this'))->qualifier->toBe('this');
});
});
describe('::equal()', function () {
test('creates Field w/o parameter', function () {
$field = Field::equal('my_test', 9);