---
title: "Breaking: The synchronizer context namespace is fixed"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:breaking-synchronizer-context-namespace-corrected@main"
source: "Changelog/3.0/Breaking-SynchronizerContextNamespaceCorrected.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

# Breaking: The synchronizer context namespace is fixed {#breaking-synchronizer-context-namespace-corrected}

## Description {#description}

The data object that describes one translation synchronisation run moved out of
its misspelled namespace, and its property lost the same misspelling:

| Before | Since 3.0 |
| --- | --- |
| `\FGTCLB\AcademicPersons\Domain\Model\Dto\Syncronizer\SynchronizerContext` | `\FGTCLB\AcademicPersons\Domain\Model\Dto\Synchronizer\SynchronizerContext` |
| `SynchronizerContext::$recordSyncronizer` | `SynchronizerContext::$recordSynchronizer` |
| the named argument `recordSyncronizer:` of the constructor and of `SynchronizerContext::create()` | `recordSynchronizer:` |

`\FGTCLB\AcademicPersons\Service\RecordSynchronizerInterface` takes the
context under its new name. No class alias is registered for the old one: the
property and the named argument cannot be bridged, so an alias would keep half
of the old code working and let the other half fail later.

The listener
`\FGTCLB\AcademicPersonsEdit\EventListener\SyncChangesToTranslations` of
`EXT:academic_persons_edit` carries the same misspelling. Its constructor
argument and promoted property `$recordSyncronizer` are renamed to
`$recordSynchronizer` as well. The class is final, so only code that
creates the listener itself is affected.

## Impact {#impact}

Code that names the old class, reads the old property or passes the old named
argument fails with an error, the named argument `recordSyncronizer:` of
the listener constructor included. The translation synchronisation of the
profile editor works as before, on TYPO3 v13 and v14.

## Affected Installations {#affected-installations}

Installations with their own implementation of
`RecordSynchronizerInterface`, which is marked internal and experimental,
with code that builds or reads a `SynchronizerContext`, or with code that
creates `SyncChangesToTranslations` with named arguments. Search the site
package for the misspelling:

```bash
grep -rn "yncronizer" packages/my_sitepackage/
```

## Migration {#migration}

Replace `Dto\Syncronizer\` with :php:`DtoSynchronizer\` in the imports,
`->recordSyncronizer` with `->recordSynchronizer`, and the named
argument `recordSyncronizer:` with `recordSynchronizer:`, for the
context and for the listener.
