Anydataset NoSQL standardizes the access to non-relational databases/repositories and provides a consistent interface for both NoSQL document databases and Key/Value stores. The implementation supports:
- MongoDB (document-based)
- AWS DynamoDB (key/value)
- S3-Like Storage (key/value)
- Cloudflare KV (key/value)
Anydataset is an agnostic data source abstraction layer in PHP. See more about Anydataset here.
- Access both document-based and key/value repositories with consistent interfaces
- NoSQL document-based databases accessed through
NoSqlInterface - Key/Value stores accessed through
KeyValueInterface - Unified connection string format based on URIs
- Built-in caching capabilities with PSR-16 compatibility
- Type-safe DynamoDB attribute definitions using enums
The connection string for databases is based on URL.
See below the current implemented drivers:
| Datasource | Connection String |
|---|---|
| MongoDB | mongodb://username:password@hostname:port/database |
| S3 | s3://accesskey:secretkey@region/bucket?params |
| Cloudflare KV | kv://username:password@accountid/namespaceid |
| AWS DynamoDB | dynamodb://accesskey:secretkey@hostname/tablename?params |
- MongoDB - Document-based NoSQL database
- AWS DynamoDB - Key/Value store with type-safe attribute definitions
- AWS S3 - Object storage as Key/Value store
- Cloudflare KV - Cloudflare Workers KV storage
- Cache Store - PSR-16 compatible cache layer for Key/Value stores
- Running Tests - How to run the test suite
Just type:
composer require "byjg/anydataset-nosql"flowchart TD
byjg/anydataset-nosql --> ext-curl
byjg/anydataset-nosql --> aws/aws-sdk-php
byjg/anydataset-nosql --> byjg/anydataset
byjg/anydataset-nosql --> byjg/serializer
byjg/anydataset-nosql --> byjg/webrequest
byjg/anydataset-nosql --> byjg/cache-engine
byjg/anydataset-nosql --> ext-json