Project

General

Profile

Actions

Feature #97754

open

Refactoring: Add repository and data mapper for WorkspaceRecord/AbstractRecord

Added by Oliver Klee about 2 years ago. Updated over 1 year ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Workspaces
Start date:
2022-06-09
Due date:
% Done:

0%

Estimated time:
PHP Version:
Tags:
Complexity:
Sprint Focus:

Description

In \TYPO3\CMS\Workspaces\Domain\Record\WorkspaceRecord::get(), there are two patterns hidden that want to be emerge:

public static function get($uid, array $record = null)
{
if (empty($uid)) {
$record = [];
} elseif (empty($record)) {
$record = static::fetch('sys_workspace', $uid);
}
return new self($record);
}

We should refactor this to the following structures:

- (Abstract)DataMapper: has a method to convert an array (which can also be empty) of data to an AbstractRecord instance
- WorkpaceRecordMapper: extends DataMapper
- AbstractRecordRepository::getByUid: retrieves a record from the DB an creates a record model instance; uses the data mapper
- WorkspaceRecordRepository extends AbstractRecordRepository

We also should deprecate WorkspaceRecord::get() and adapt all callers to use the repository or data mapper.


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #97423: WorkspaceRecord cannot be XCLASSedClosed2022-04-18

Actions
Actions

Also available in: Atom PDF