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.

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

Methods

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
string

handleOverlays()

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
Return values
array<string|int, mixed>

        
On this page

Search results