ClientMapper
extends AbstractMapper
in package
The AbstractMapper is used to retrieve and store DomainObjects from and to the Database
A DataMapper implementation has to provide the methods for interaction
But There should be find[ByXYZ] methods to retreive \VeruA\DomainObjects and insert/update methods
to store the data to the Database
Table of Contents
- COLUMNS = [self::TABLE => ['id', self::FK_INSU, self::FK_PERS, 'ahv', 'geb', 'staatsang', 'anz_kinder', 'card_id', 'expiry_date']]
- FK_ADDR = 'id_adr'
- FK_INSU = 'id_vers'
- FK_PERS = 'id_pers'
- JOINS = ['person' => ['LEFT JOIN', \VeruA\DataMapper\PersonMapper::TABLE, self::FK_PERS . '=`person`.id', \VeruA\DataMapper\PersonMapper::COLUMNS[\VeruA\DataMapper\PersonMapper::TABLE]], 'person.address' => ['LEFT JOIN', \VeruA\DataMapper\AddressMapper::TABLE, '`person`.id_adr=`person.address`.id', \VeruA\DataMapper\AddressMapper::COLUMNS[\VeruA\DataMapper\AddressMapper::TABLE]]]
- TABLE = 'klient'
- WHERE = ['klient.del=0']
- $dbc : mysqli
- $fieldMap : array<string|int, mixed>
- $map : array<string|int, mixed>
- __construct() : mixed
- find() : Client
- findAll() : mixed
- findByAHV() : DomainObjectCollection
- loads all Clients of a certain AHV This should always be just one, but for now it uses a findMany
- findMany() : DomainObjectCollection
- insert() : mixed
- load() : DomainObject
- loadGhost() : void
- map() : array<string|int, mixed>
- mapValues() : mixed
- Map DomainObjectValues to database column values
- sqlWhere() : mixed
- store() : mixed
- storeMany() : mixed
- update() : mixed
- updateAll() : mixed
- abstractCreateGhost() : DomainObject
- abstractFind() : DomainObject
- Executes an sql select statement
- createGhost() : Client
- doLoad() : Client
- insertQuery() : IQuery
- Returns a new INSERT Query Instance
- query() : IQuery
- Returns a new SELECT Query Instance
- sqlColumns() : string
- sqlInsertQuery() : string
- sqlJoins() : string
- sqlSelectQuery() : string
- sqlUpdateQuery() : string
- updateQuery() : IQuery
- Returns a new UPDATE Query Instance
Constants
COLUMNS
public
mixed
COLUMNS
= [self::TABLE => ['id', self::FK_INSU, self::FK_PERS, 'ahv', 'geb', 'staatsang', 'anz_kinder', 'card_id', 'expiry_date']]
FK_ADDR
public
mixed
FK_ADDR
= 'id_adr'
FK_INSU
public
mixed
FK_INSU
= 'id_vers'
FK_PERS
public
mixed
FK_PERS
= 'id_pers'
JOINS
public
mixed
JOINS
= ['person' => ['LEFT JOIN', \VeruA\DataMapper\PersonMapper::TABLE, self::FK_PERS . '=`person`.id', \VeruA\DataMapper\PersonMapper::COLUMNS[\VeruA\DataMapper\PersonMapper::TABLE]], 'person.address' => ['LEFT JOIN', \VeruA\DataMapper\AddressMapper::TABLE, '`person`.id_adr=`person.address`.id', \VeruA\DataMapper\AddressMapper::COLUMNS[\VeruA\DataMapper\AddressMapper::TABLE]]]
TABLE
public
mixed
TABLE
= 'klient'
WHERE
public
mixed
WHERE
= ['klient.del=0']
Properties
$dbc
protected
mysqli
$dbc
A database Connection Object
$fieldMap
protected
array<string|int, mixed>
$fieldMap
= []
Map DomainObjects field names to database column names
Tags
$map
protected
static array<string|int, mixed>
$map
Identity Map of Client Objects
Methods
__construct()
public
__construct(mysqli $dbc) : mixed
Parameters
- $dbc : mysqli
-
The database Connection Object
Return values
mixed —find()
public
find(int $id) : Client
Parameters
- $id : int
Return values
Client —findAll()
public
findAll() : mixed
Return values
mixed —findByAHV()
loads all Clients of a certain AHV This should always be just one, but for now it uses a findMany
public
findByAHV(string|EAN13 $ahv[, int|Integer $idOwner = null ]) : DomainObjectCollection
Parameters
- $ahv : string|EAN13
-
The AHV Number
- $idOwner : int|Integer = null
Return values
DomainObjectCollection —findMany()
public
findMany(IQuery $query) : DomainObjectCollection
Parameters
- $query : IQuery
Return values
DomainObjectCollection —insert()
public
insert(DomainObject $dmo) : mixed
Parameters
- $dmo : DomainObject
Return values
mixed —load()
public
load(IResultSet $rs) : DomainObject
Parameters
- $rs : IResultSet
Return values
DomainObject —loadGhost()
public
loadGhost(DomainObject $ghost) : void
Parameters
- $ghost : DomainObject
Return values
void —map()
public
map(IResultSet $rs) : array<string|int, mixed>
Parameters
- $rs : IResultSet
Return values
array<string|int, mixed> —mapValues()
Map DomainObjectValues to database column values
public
mapValues(array<string|int, mixed> $values) : mixed
Parameters
- $values : array<string|int, mixed>
Return values
mixed —sqlWhere()
public
sqlWhere(array<string|int, mixed> $where) : mixed
Parameters
- $where : array<string|int, mixed>
Return values
mixed —store()
public
store(DomainObject $dmo) : mixed
Parameters
- $dmo : DomainObject
Return values
mixed —storeMany()
public
storeMany(mixed $dmos) : mixed
Parameters
- $dmos : mixed
Return values
mixed —update()
public
update(DomainObject $dmo) : mixed
Parameters
- $dmo : DomainObject
Return values
mixed —updateAll()
public
updateAll(DomainObject $dmo) : mixed
Parameters
- $dmo : DomainObject
Return values
mixed —abstractCreateGhost()
protected
abstractCreateGhost(DomainObject $dmo) : DomainObject
Parameters
- $dmo : DomainObject
Return values
DomainObject —abstractFind()
Executes an sql select statement
protected
abstractFind(string|Varchar|int $id, IQuery $query) : DomainObject
checks if object is already in the identity map and returns it, if not it executes the sql.
Parameters
- $id : string|Varchar|int
-
The Primary Key
- $query : IQuery
Tags
Return values
DomainObject —createGhost()
protected
createGhost(Key $id) : Client
Parameters
- $id : Key
Return values
Client —doLoad()
protected
doLoad(Key $id, IResultSet $rs) : Client
Parameters
- $id : Key
- $rs : IResultSet
Return values
Client —insertQuery()
Returns a new INSERT Query Instance
protected
insertQuery() : IQuery
Return values
IQuery —query()
Returns a new SELECT Query Instance
protected
query() : IQuery
Return values
IQuery —sqlColumns()
protected
sqlColumns(array<string|int, mixed> $tableColumns) : string
Parameters
- $tableColumns : array<string|int, mixed>
-
[$table => [ $column, ... ], ...]
Return values
string —sqlInsertQuery()
protected
sqlInsertQuery(array<string|int, mixed> $columns, string $table, array<string|int, mixed> $values) : string
Parameters
- $columns : array<string|int, mixed>
-
[$table => [ $column, ... ], ...]
- $table : string
- $values : array<string|int, mixed>
-
array a row of values in the same order and count of $columns
Return values
string —sqlJoins()
protected
sqlJoins(array<string|int, mixed> $joins) : string
Parameters
- $joins : array<string|int, mixed>
Return values
string —sqlSelectQuery()
protected
sqlSelectQuery(array<string|int, mixed> $columns, string $table, array<string|int, mixed> $joins, array<string|int, mixed> $where) : string
Parameters
- $columns : array<string|int, mixed>
-
[$table => [ $column, ... ], ...]
- $table : string
- $joins : array<string|int, mixed>
-
array of sql joins
- $where : array<string|int, mixed>
-
array of where clauses joined with AND
Return values
string —sqlUpdateQuery()
protected
sqlUpdateQuery(array<string|int, mixed> $values, string $table, string $where) : string
Parameters
- $values : array<string|int, mixed>
-
[$field => $value, ...]
- $table : string
- $where : string
-
condition
Return values
string —updateQuery()
Returns a new UPDATE Query Instance
protected
updateQuery() : IQuery