Skip to content

IBX-11437: Implemented reference aware external storage#730

Merged
barw4 merged 7 commits into4.6from
ibx-11437
Apr 2, 2026
Merged

IBX-11437: Implemented reference aware external storage#730
barw4 merged 7 commits into4.6from
ibx-11437

Conversation

@barw4
Copy link
Copy Markdown
Contributor

@barw4 barw4 commented Mar 19, 2026

🎫 Issue IBX-11437

Related PRs:

ibexa/admin-ui#1856
https://github.com/ibexa/fieldtype-page/pull/191
https://github.com/ibexa/installer/pull/207

Description:

Problem

When creating a new content version (draft), all field external storage data is fully copied for every translation — even translations not being edited. For field types with complex external storage (e.g. Page Builder with zones, blocks, attributes across multiple tables), this causes thousands of redundant queries per draft creation.

Solution

A new ReferenceAwareExternalStorage interface allows field types to opt out of copying external data for untouched translations during draft creation. Instead of duplicating data, the storage creates a lightweight reference to the source version's data and resolves it transparently on read.

interface ReferenceAwareExternalStorage
{
    public function referenceLegacyField(
        VersionInfo $versionInfo,
        Field $field,
        Field $originalField
    ): ?bool;
}

For QA:

Documentation:

Copy link
Copy Markdown
Member

@alongosz alongosz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@barw4 nitpick: could you please fix PRs titles so they include a verb per internal conventions? e.g. "Implemented" - ideally in past simple so we don't forget to change it in the merge commit.

More interesting remarks:

@barw4 barw4 changed the title IBX-11437: Reference aware external storage IBX-11437: Implemented reference aware external storage Mar 20, 2026
@barw4 barw4 requested a review from alongosz March 20, 2026 13:00
@alongosz
Copy link
Copy Markdown
Member

Hey @barw4, fixed on 4.6 one of the unrelated PHPStan issues that popped up here, you can rebase :)

@micszo micszo self-assigned this Mar 25, 2026
@sonarqubecloud
Copy link
Copy Markdown

@barw4 barw4 merged commit 5e6e40e into 4.6 Apr 2, 2026
39 checks passed
@barw4 barw4 deleted the ibx-11437 branch April 2, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants