NoSQL Database Abstraction
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.
Features
- 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
Connection Based on URI
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 |
Documentation
NoSQL Drivers
- MongoDB - Document-based NoSQL database
Key/Value Drivers
- AWS DynamoDB - Key/Value store with type-safe attribute definitions
- AWS S3 - Object storage as Key/Value store
- Cloudflare KV - Cloudflare Workers KV storage
Additional Features
- Cache Store - PSR-16 compatible cache layer for Key/Value stores
- Running Tests - How to run the test suite
Install
Just type:
composer require "byjg/anydataset-nosql"