> $rows */ public function add(string $filename, array $rows): int { $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable(self::TABLE); $connection->insert(self::TABLE, [ 'pid' => 0, 'crdate' => time(), 'be_user' => (int)($GLOBALS['BE_USER']->user['uid'] ?? 0), 'filename' => mb_substr($filename, 0, 255), 'row_count' => count($rows), 'payload' => (string)json_encode($rows, JSON_UNESCAPED_UNICODE), ]); return (int)$connection->lastInsertId(); } /** * @return array{uid:int,crdate:int,filename:string,rows:array>}|null */ public function latest(int $offset = 0): ?array { $qb = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(self::TABLE); $row = $qb->select('uid', 'crdate', 'filename', 'payload')->from(self::TABLE) ->orderBy('uid', 'DESC') ->setFirstResult($offset) ->setMaxResults(1) ->executeQuery()->fetchAssociative(); if (!$row) { return null; } $rows = json_decode((string)$row['payload'], true); return [ 'uid' => (int)$row['uid'], 'crdate' => (int)$row['crdate'], 'filename' => (string)$row['filename'], 'rows' => is_array($rows) ? $rows : [], ]; } }