Skip to content

[FEATURE] Support coalesce/concat resolution strategies for synchronizeColumns - #376

Merged
sfroemkenjw merged 1 commit into
TYPO3_13-4from
backport-synchronizeColumns-coalesce-concat-13-4
Aug 19, 2026
Merged

sfroemkenjw merged 1 commit into
TYPO3_13-4from
backport-synchronizeColumns-coalesce-concat-13-4

Conversation

@sfroemkenjw

Copy link
Copy Markdown
Contributor

Summary

  • Backports the foreignColumnName coalesce/concat resolution feature for synchronizeColumns from main (Support coalesce/concat resolution strategies for synchronizeColumns #375) to TYPO3 13.
  • foreignColumnName previously only accepted a single, hard-coded column name of the foreign table. It can now also be a coalesce (first non-empty value wins) or concat (join multiple columns) configuration, arbitrarily nestable.
  • The static Maps2Registry::getInstance()->add() registration API and its JSON-backed registry are intentionally not touched — only the interpretation of the synchronizeColumns[].foreignColumnName option changed. The TcaSchemaFactory/TCA-embedded registration rewrite that ships on main for TYPO3 14 is out of scope here.
  • Bumped version to 12.2.0 (minor, new backwards-compatible feature) and added a ChangeLog entry.

Test plan

  • Unit tests: Build/Scripts/runTests.sh -s unit — 46/46 green, incl. 28 new ForeignColumnTest cases
  • Functional tests: Build/Scripts/runTests.sh -s functional (SQLite) — 287/287 green, no new failures/deprecations vs. baseline (286/1 deprecation)
  • CGL (Build/Scripts/runTests.sh -s cgl -n) — 0 violations

🤖 Generated with Claude Code

…zeColumns

Backport of the foreignColumnName coalesce/concat resolution feature from
main (#375) to TYPO3 13. foreignColumnName previously only accepted a
single, hard-coded column name, which made it impossible to synchronize a
value that may live in one of several columns (e.g. company vs. name) or
that has to be combined from multiple columns (e.g. first_name +
last_name).

The new ForeignColumn value object resolves foreignColumnName as a
composite: a plain string still works as before, while an array with type
coalesce/concat (or a bare list, treated as an implicit coalesce) can
combine and nest arbitrarily.

The static Maps2Registry::getInstance()->add() registration API and its
JSON-backed registry are intentionally kept as-is; only the interpretation
of the `synchronizeColumns[].foreignColumnName` option changed. The
TcaSchemaFactory-based registry rewrite and TCA-embedded registration from
main's TYPO3 14 line are out of scope for this branch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sfroemkenjw
sfroemkenjw merged commit bbd32f3 into TYPO3_13-4 Aug 19, 2026
3 checks passed
@sfroemkenjw
sfroemkenjw deleted the backport-synchronizeColumns-coalesce-concat-13-4 branch August 19, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant