Documentation

DbEntityManager
in package

FinalYes
Tags
todo

Could be renamed to DbEntityFactory / DbArrayFactory.

phpstan-type

dbscalar int|float|null|string

dbrow array<string, dbscalar>

Table of Contents

Constants

SEP  : mixed = '_'

Methods

convertAppArrayToDbArray()  : dbrow
Converts array with App Data format into array ready to be passed to PDO::execute.
convertAppVarToDbScalar()  : int|float|null|string
Converts a scalar under app data format into a scalar ready to be bound to a PDOStatement parameter.
convertDbEntityList()  : array<int, AppObject<string|int, mixed>>
convertDbList()  : array<int, mixed>
For now, ListModel objects can only have an scalar item model. Hence why the type of getItemModel() is not checked yet, look at commit 6f25edc4af219c2f9753d9e4586f4dea843b4f70 to see how it was done.
convertDbRowsToAppObject()  : AppObject<string|int, mixed>
Convert the result of a database query as a list of rows into an AppObject.
convertDbRowsToEntityList()  : AppList
convertDbScalar()  : mixed
Convert a variable in DB Data format into App Data format.
outerJoinDbRows()  : array<int, array<string|int, mixed>>
Perform an outer join on two result sets, as if the two were issued from an outer join request.
getReferencedRowNos()  : array<int, int>

Constants

Methods

convertAppArrayToDbArray()

Converts array with App Data format into array ready to be passed to PDO::execute.

public convertAppArrayToDbArray(array<string, mixed> $appArray[, string $prefix = '' ][, array<string|int, mixed> $propertiesToIgnore = [] ]) : dbrow
Parameters
$appArray : array<string, mixed>
$prefix : string = ''
$propertiesToIgnore : array<string|int, mixed> = []
Tags
todo

Wait for PHPStan to support recursive types to define apparray type.

Wait for PHPStan to understand that concatenation of non-decimal-int-string is non-decimal-int-string.

Return values
dbrow

convertAppVarToDbScalar()

Converts a scalar under app data format into a scalar ready to be bound to a PDOStatement parameter.

public convertAppVarToDbScalar(mixed $appVar) : int|float|null|string

For instance, it will convert boolens into 0 and 1.

Parameters
$appVar : mixed
Return values
int|float|null|string

convertDbEntityList()

public convertDbEntityList(array<int, dbrow$dbRows, EntityListModel $entityListModel, int|string|null $referenceId) : array<int, AppObject<string|int, mixed>>
Parameters
$dbRows : array<int, dbrow>
$entityListModel : EntityListModel
$referenceId : int|string|null
Return values
array<int, AppObject<string|int, mixed>>

convertDbList()

For now, ListModel objects can only have an scalar item model. Hence why the type of getItemModel() is not checked yet, look at commit 6f25edc4af219c2f9753d9e4586f4dea843b4f70 to see how it was done.

public convertDbList(array<int, null|dbscalar$dbDataList, ListModel $listModel) : array<int, mixed>
Parameters
$dbDataList : array<int, null|dbscalar>
$listModel : ListModel
Return values
array<int, mixed>

convertDbRowsToAppObject()

Convert the result of a database query as a list of rows into an AppObject.

public convertDbRowsToAppObject(array<int, dbrow$dbRows, EntityModel $model[, int $index = 0 ]) : AppObject<string|int, mixed>
Parameters
$dbRows : array<int, dbrow>

A list of associative arrays each storing a different row.

$model : EntityModel

The model of each row.

$index : int = 0

The row identifier of the main entity.

Tags
todo

Create type for dbRows, as a list of associative arrays?

Throw exception is passed array is empty.

Return values
AppObject<string|int, mixed>

convertDbScalar()

Convert a variable in DB Data format into App Data format.

public convertDbScalar(dbscalar $dbData, IScalarModel $model) : mixed

The following order of priority applies when converting the DB data into app data: bool, int, DateTime, and finally string.

Parameters
$dbData : dbscalar

The data as returned by PDO.

$model : IScalarModel

The model of the DB Data.

Tags
throws
InvalidArgumentException

If $dbData is not of any DB Data variable type.

Return values
mixed

A PHP scalar type or base class object.

outerJoinDbRows()

Perform an outer join on two result sets, as if the two were issued from an outer join request.

public outerJoinDbRows(array<int, array<string|int, mixed>> $dbRowsLeft, array<int, array<string|int, mixed>> $dbRowsRight) : array<int, array<string|int, mixed>>
Parameters
$dbRowsLeft : array<int, array<string|int, mixed>>

A list of rows returned from the database.

$dbRowsRight : array<int, array<string|int, mixed>>

A list of rows returned from the database.

Return values
array<int, array<string|int, mixed>>

A list of rows with $dbRowsRight appended to $dbRowsLeft, and with each row having all the same columns.

getReferencedRowNos()

private getReferencedRowNos(array<string|int, array<string, mixed>> $dbRows, ForeignEntityModel $property, int|string $referenceId) : array<int, int>
Parameters
$dbRows : array<string|int, array<string, mixed>>
$property : ForeignEntityModel
$referenceId : int|string
Return values
array<int, int>
On this page

Search results