GreedyDatabaseBackend
Read onlyYes
Fetches all records of a single table of one / multiple PID(s) in one DB query, and stores them in a runtime cache.
The records are neither grouped nor do we care about
- sorting
- limit / offset
- or BE User permissions.
It is "greedy" because it is meant to do simple query in a fast way, to reduce overlays on a "per record" basis.
The records are fetched depending on
- fe_group permissions
- language (incl. overlays etc)
- workspace
- visibility restrictions (starttime / endtime / hidden / deleted)
The class returns an array and does not handle objects, as it is very "lowlevel" and thus: internal.
not part of public API, as this needs to be streamlined and proven
Table of Contents
Properties
- $connectionPool : ConnectionPool
- $recordAccessVoter : RecordAccessVoter
- $runtimeCache : FrontendInterface
Methods
- __construct() : mixed
- getRows() : array<string|int, mixed>
- createRuntimeCacheIdentifier() : string
- handleOverlays() : array<string|int, mixed>
Properties
$connectionPool
protected
ConnectionPool
$connectionPool
$recordAccessVoter
protected
RecordAccessVoter
$recordAccessVoter
$runtimeCache
protected
FrontendInterface
$runtimeCache
Attributes
- #[Autowire]
- $service: 'cache.runtime'
Methods
__construct()
public
__construct(FrontendInterface $runtimeCache, RecordAccessVoter $recordAccessVoter, ConnectionPool $connectionPool) : mixed
Parameters
- $runtimeCache : FrontendInterface
- $recordAccessVoter : RecordAccessVoter
- $connectionPool : ConnectionPool
getRows()
public
getRows(string $tableName, array<string|int, mixed> $uids, Context $context) : array<string|int, mixed>
Parameters
- $tableName : string
- $uids : array<string|int, mixed>
- $context : Context
Return values
array<string|int, mixed>createRuntimeCacheIdentifier()
protected
createRuntimeCacheIdentifier(string $tableName, array<string|int, mixed> $uids, Context $context) : string
Parameters
- $tableName : string
- $uids : array<string|int, mixed>
- $context : Context
Return values
stringhandleOverlays()
protected
handleOverlays(array<string|int, mixed> $rows, string $dbTable, Context $context) : array<string|int, mixed>
Parameters
- $rows : array<string|int, mixed>
- $dbTable : string
- $context : Context