Anydataset Database Relational abstraction. Anydataset is an agnostic data source abstraction layer in PHP.
See more about Anydataset here.
- Connection based on URI
- Support and fix code tricks with several databases (MySQL, PostgresSql, MS SQL Server, etc)
- Natively supports Query Cache by implementing a PSR-6 interface
- Supports Connection Routes based on regular expression against the queries, that's mean a select in a table should be executed in a database and in another table should be executed in another (even if in different DB)
The connection string for databases is based on URL.
See below the current implemented drivers:
Database | Connection String | Factory |
---|---|---|
Sqlite | sqlite:///path/to/file | getDbRelationalInstance() |
MySql/MariaDb | mysql://username:password@hostname:port/database | getDbRelationalInstance() |
Postgres | psql://username:password@hostname:port/database | getDbRelationalInstance() |
Sql Server (DbLib) | dblib://username:password@hostname:port/database | getDbRelationalInstance() |
Sql Server (Sqlsrv) | sqlsrv://username:password@hostname:port/database | getDbRelationalInstance() |
Oracle (OCI8) | oci8://username:password@hostname:port/database | getDbRelationalInstance() |
Generic PDO | pdo://username:password@pdo_driver?PDO_PARAMETERS | getDbRelationalInstance() |
<?php
$conn = \ByJG\AnyDataset\Db\Factory::getDbInstance("mysql://root:password@10.0.1.10/myschema");
- Getting Started
- Basic Query and Update
- Cache results
- Database Transaction
- Load Balance and Connection Pooling
- Database Helper
Just type:
composer require "byjg/anydataset"
flowchart TD
byjg/anydataset-db --> byjg/anydataset-array
byjg/anydataset-db --> ext-pdo
byjg/anydataset-db --> byjg/uri
byjg/anydataset-db --> psr/cache
byjg/anydataset-db --> psr/log