Database
extends Database
in package
Alias
Table of Contents
- $cache : array<string|int, mixed>
- A cache to hold prepared statements.
- $connections : array<string|int, mixed>
- Current open database connections.
- $dsn : string
- $options : array<string|int, mixed>|null
- $password : string|null
- $username : string|null
- connect() : static
- Returns a singleton instance of the `Database` class based on connection credentials.
- instance() : static
- Returns the singleton instance of the `Database` class using credentials found in `{database}` config.
- perform() : PDOStatement
- A wrapper method to perform a query on the fly using either `self::query()` or `self::prepare()` + `self::execute()`.
- prepare() : mixed
- Adds caching capabilities for prepared statement.
- transactional() : mixed
- Serves as a wrapper method to execute some operations in transactional context with the ability to attempt retires.
- __construct() : mixed
- Class constructor.
- getStatementClass() : string
- Returns FQN for a custom `PDOStatement` class.
- mock() : Database
- Returns a fake instance of the `Database` class.
Properties
$cache
A cache to hold prepared statements.
protected
array<string|int, mixed>
$cache
$connections
Current open database connections.
protected
static array<string|int, mixed>
$connections
$dsn
protected
string
$dsn
$options
protected
array<string|int, mixed>|null
$options
$password
protected
string|null
$password
$username
protected
string|null
$username
Methods
connect()
Returns a singleton instance of the `Database` class based on connection credentials.
public
final static connect(string|null $dsn[, string|null $username = null ][, string|null $password = null ][, array<string|int, mixed>|null $options = null ]) : static
This method makes sure that a single connection is opened and reused for each connection credentials set (DSN, User, Password, ...).
Parameters
- $dsn : string|null
-
The DSN string.
- $username : string|null = null
-
[optional] The database username.
- $password : string|null = null
-
[optional] The database password.
- $options : array<string|int, mixed>|null = null
-
[optional] PDO options.
Return values
static —instance()
Returns the singleton instance of the `Database` class using credentials found in `{database}` config.
public
static instance() : static
Tags
Return values
static —perform()
A wrapper method to perform a query on the fly using either `self::query()` or `self::prepare()` + `self::execute()`.
public
perform(string $query[, array<string|int, mixed> $params = null ]) : PDOStatement
Parameters
- $query : string
-
The query to execute.
- $params : array<string|int, mixed> = null
-
The parameters to bind to the query.
Return values
PDOStatement —prepare()
Adds caching capabilities for prepared statement.
public
prepare(mixed $query[, mixed $options = [] ]) : mixed
Parameters
- $query : mixed
- $options : mixed = []
Return values
mixed —transactional()
Serves as a wrapper method to execute some operations in transactional context with the ability to attempt retires.
public
transactional(callable $callback[, int $retries = 3 ]) : mixed
Parameters
- $callback : callable
-
The callback to execute inside the transaction. This callback will be bound to the
Database
class. - $retries : int = 3
-
The number of times to attempt the transaction. Each retry will be delayed by 1-3 seconds.
Tags
Return values
mixed —The result of the callback.
__construct()
Class constructor.
protected
__construct(string $dsn[, string|null $username = null ][, string|null $password = null ][, array<string|int, mixed>|null $options = null ]) : mixed
Adds some default options to the PDO connection.
Parameters
- $dsn : string
- $username : string|null = null
- $password : string|null = null
- $options : array<string|int, mixed>|null = null
Return values
mixed —getStatementClass()
Returns FQN for a custom `PDOStatement` class.
private
getStatementClass() : string
Return values
string —mock()
Returns a fake instance of the `Database` class.
private
static mock() : Database
Tags
Return values
Database —This instance will throw an exception if a method is called.