DB
in package
Database management class providing ORM-like functionality
Handles database connections, queries, and object persistence with transaction support
Tags
Table of Contents
Constants
- FETCH_TYPE_ALL = 1
- FETCH_TYPE_ROW = 0
Properties
- $connection : PDO|null
- $fields : array<string, array<string|int, string>>
- $lastConnection : int
Methods
- __clone() : void
- Prevent cloning of class
- beginTransaction() : void
- Start a database transaction
- buildDefinitionField() : string
- Build SQL field definition
- buildDefinitionIndex() : string
- Build SQL index definition
- buildField() : string
- Build SQL fields list
- CallStoredProc() : null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>
- Execute a stored procedure
- checksum() : string
- Calculate table checksum
- commit() : void
- Commit the current transaction
- compareAndFix() : bool
- Compare and fix database structure
- compareDatabase() : array<string, array<string, array<string, mixed>>>
- Compare database against reference structure
- compareField() : array<string, array<string, string>>
- Compare field against reference structure
- compareIndex() : array<string, array<string, string>>
- Compare index against reference structure
- compareTable() : array<string, array<string, array<string, mixed>>>
- Compare table against reference structure
- getConnection() : PDO
- Get database connection, initializing if needed
- getLastInsertId() : false|string
- Get ID of last inserted row
- getWithFilter() : array<string|int, mixed>|null
- Find entities matching filters
- lock() : bool
- Lock entity for update
- optimize() : void
- Optimize database tables
- Prepare() : null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>
- Execute a prepared statement
- prepareIndexCompare() : array<string, array<string, mixed>>
- Format index data for comparison
- refresh() : bool
- Refresh entity from database
- remove() : bool
- Remove entity from database
- rollBack() : void
- Rollback the current transaction
- save() : bool
- Save an entity in the database
- buildQuery() : array<string|int, array<string|int, scalar|null>>
- Build SQL query parameters from entity
- getField() : scalar|null
- Get entity field value
- getFields() : array<string|int, string>
- Get class fields using reflection
- getReflectionClass() : ReflectionClass
- Get reflected class for entity
- getTableName() : string
- Get table name for entity
- initConnection() : void
- Initialize database connection
- setField() : void
- Set entity field value
Constants
FETCH_TYPE_ALL
public
int
FETCH_TYPE_ALL
= 1
Return all rows from database
FETCH_TYPE_ROW
public
int
FETCH_TYPE_ROW
= 0
Return a single row from database
Properties
$connection
private
static PDO|null
$connection
= \null
Database connection instance
$fields
private
static array<string, array<string|int, string>>
$fields
= array()
Cache of table fields
$lastConnection
private
static int
$lastConnection
Timestamp of last connection
Methods
__clone()
Prevent cloning of class
public
__clone() : void
beginTransaction()
Start a database transaction
public
static beginTransaction() : void
buildDefinitionField()
Build SQL field definition
public
static buildDefinitionField(array<string, mixed> $_field) : string
Parameters
- $_field : array<string, mixed>
-
Field structure
Return values
string —SQL definition
buildDefinitionIndex()
Build SQL index definition
public
static buildDefinitionIndex(array<string, string> $_index, string $_table_name) : string
Parameters
- $_index : array<string, string>
-
Index structure
- $_table_name : string
-
Table name
Return values
string —SQL definition
buildField()
Build SQL fields list
public
static buildField(string|object $_class[, string $_prefix = '' ]) : string
Parameters
- $_class : string|object
-
Entity class
- $_prefix : string = ''
-
Optional table alias
Return values
string —Fields list
CallStoredProc()
Execute a stored procedure
public
static & CallStoredProc(string $_procName, array<string, int|string> $_params, int $_fetch_type[, string|null $_className = NULL ][, int|null $_fetch_opt = NULL ]) : null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>
Parameters
- $_procName : string
-
Procedure name
- $_params : array<string, int|string>
-
Parameters
- $_fetch_type : int
-
FETCH_TYPE constant
- $_className : string|null = NULL
-
Optional classname for object hydration
- $_fetch_opt : int|null = NULL
-
Optional PDO fetch mode
Tags
Return values
null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>checksum()
Calculate table checksum
public
static checksum(string $_table) : string
Parameters
- $_table : string
-
Table name
Tags
Return values
string —Checksum value
commit()
Commit the current transaction
public
static commit() : void
compareAndFix()
Compare and fix database structure
public
static compareAndFix(array<string, mixed> $_database[, string $_table = 'all' ][, bool $_verbose = false ][, int $_loop = 0 ]) : bool
Parameters
- $_database : array<string, mixed>
-
Reference database structure
- $_table : string = 'all'
-
Specific table or 'all'
- $_verbose : bool = false
-
Enable detailed output
- $_loop : int = 0
-
Current fix attempt
Tags
Return values
bool —Success status
compareDatabase()
Compare database against reference structure
public
static compareDatabase(array<string, mixed> $_database) : array<string, array<string, array<string, mixed>>>
Parameters
- $_database : array<string, mixed>
-
Reference database structure
Return values
array<string, array<string, array<string, mixed>>> —Comparison results
compareField()
Compare field against reference structure
public
static compareField(array<string, mixed> $_ref_field, array<string, mixed> $_real_field, string $_table_name) : array<string, array<string, string>>
Parameters
- $_ref_field : array<string, mixed>
-
Reference field structure
- $_real_field : array<string, mixed>
-
Actual field structure
- $_table_name : string
-
Table name
Return values
array<string, array<string, string>> —Comparison results
compareIndex()
Compare index against reference structure
public
static compareIndex(array<string, mixed> $_ref_index, array<string, mixed> $_real_index, string $_table_name[, bool $_forceRebuild = false ]) : array<string, array<string, string>>
Parameters
- $_ref_index : array<string, mixed>
-
Reference index structure
- $_real_index : array<string, mixed>
-
Actual index structure
- $_table_name : string
-
Table name
- $_forceRebuild : bool = false
-
Force index rebuild
Return values
array<string, array<string, string>> —Comparison results
compareTable()
Compare table against reference structure
public
static compareTable(array<string, mixed> $_table) : array<string, array<string, array<string, mixed>>>
Parameters
- $_table : array<string, mixed>
-
Reference table structure
Tags
Return values
array<string, array<string, array<string, mixed>>> —Comparison results
getConnection()
Get database connection, initializing if needed
public
static getConnection() : PDO
Tags
Return values
PDOgetLastInsertId()
Get ID of last inserted row
public
static getLastInsertId() : false|string
Return values
false|stringgetWithFilter()
Find entities matching filters
public
static getWithFilter(array<string, string> $_filters, object $_object) : array<string|int, mixed>|null
Parameters
- $_filters : array<string, string>
-
Search criteria
- $_object : object
-
Entity type to search
Return values
array<string|int, mixed>|null —Found entities
lock()
Lock entity for update
public
static lock(object $object) : bool
Parameters
- $object : object
-
Entity to lock
Return values
bool —Success status
optimize()
Optimize database tables
public
static optimize() : void
Tags
Prepare()
Execute a prepared statement
public
static & Prepare(string $_query, array<string, scalar|null> $_params[, int $_fetchType = self::FETCH_TYPE_ROW ][, int $_fetch_param = PDO::FETCH_ASSOC ][, string|null $_fetch_opt = NULL ]) : null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>
Parameters
- $_query : string
-
SQL query
- $_params : array<string, scalar|null>
-
Parameters
- $_fetchType : int = self::FETCH_TYPE_ROW
-
FETCH_TYPE constant
- $_fetch_param : int = PDO::FETCH_ASSOC
-
PDO fetch mode
- $_fetch_opt : string|null = NULL
-
Optional classname for object hydration
Tags
Return values
null|object|array<string|int, object>|array<string, mixed>|array<string|int, array<string, mixed>>prepareIndexCompare()
Format index data for comparison
public
static prepareIndexCompare(array<string, array<string, mixed>> $indexes) : array<string, array<string, mixed>>
Parameters
- $indexes : array<string, array<string, mixed>>
-
Raw index data
Return values
array<string, array<string, mixed>> —Formatted index data
refresh()
Refresh entity from database
public
static refresh(object $object) : bool
Parameters
- $object : object
-
Entity to refresh
Tags
Return values
bool —Success status
remove()
Remove entity from database
public
static remove(object $object) : bool
Parameters
- $object : object
-
Entity to remove
Return values
bool —Success status
rollBack()
Rollback the current transaction
public
static rollBack() : void
save()
Save an entity in the database
public
static save(object $object[, bool $_direct = false ][, bool $_replace = false ]) : bool
Parameters
- $object : object
-
Entity to save
- $_direct : bool = false
-
Skip pre/post hooks
- $_replace : bool = false
-
Use REPLACE instead of INSERT/UPDATE
Return values
bool —Success status
buildQuery()
Build SQL query parameters from entity
private
static buildQuery(object $object) : array<string|int, array<string|int, scalar|null>>
Parameters
- $object : object
-
Source entity
Return values
array<string|int, array<string|int, scalar|null>>getField()
Get entity field value
private
static getField(object $object, string $field) : scalar|null
Parameters
- $object : object
-
Source entity
- $field : string
-
Field name
Tags
Return values
scalar|null —Field value
getFields()
Get class fields using reflection
private
static getFields(string|object $object) : array<string|int, string>
Parameters
- $object : string|object
-
Entity or class name
Tags
Return values
array<string|int, string>getReflectionClass()
Get reflected class for entity
private
static getReflectionClass(object $object) : ReflectionClass
Parameters
- $object : object
-
Entity to reflect
Return values
ReflectionClassgetTableName()
Get table name for entity
private
static getTableName(object $object) : string
Parameters
- $object : object
-
Entity
Return values
string —Table name
initConnection()
Initialize database connection
private
static initConnection() : void
Tags
setField()
Set entity field value
private
static setField(object $object, string $field, mixed $value) : void
Parameters
- $object : object
-
Entity to modify
- $field : string
-
Field name
- $value : mixed
-
Field value