From 117ed8490998980fe211ffe351190e800f4926f1 Mon Sep 17 00:00:00 2001 From: Alexander Schnitzler <git@alexanderschnitzler.de> Date: Sat, 30 Oct 2021 14:31:28 +0200 Subject: [PATCH] [TASK] Replace property name strings of AbstractDomainObject with constants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Releases: main Resolves: #96046 Change-Id: I86edaa24b08808b70b92687f83a850ff32a74dc7 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72007 Tested-by: core-ci <typo3@b13.com> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Benni Mack <benni@typo3.org> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Benni Mack <benni@typo3.org> --- .../DomainObject/AbstractDomainObject.php | 10 +- .../Classes/Persistence/Generic/Backend.php | 25 +- .../Persistence/Generic/Mapper/DataMapper.php | 29 +- .../Generic/Storage/Typo3DbBackend.php | 3 +- .../Generic/Storage/Typo3DbQueryParser.php | 6 +- .../Tests/Functional/Persistence/AddTest.php | 3 +- .../Persistence/QueryLocalizedDataTest.php | 617 +++++++++--------- .../Tests/Unit/Reflection/ClassSchemaTest.php | 11 +- 8 files changed, 358 insertions(+), 346 deletions(-) diff --git a/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php b/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php index cddf255524fe..2790b9e5fee1 100644 --- a/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php +++ b/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php @@ -29,6 +29,12 @@ use TYPO3\CMS\Extbase\Persistence\ObjectMonitoringInterface; */ abstract class AbstractDomainObject implements DomainObjectInterface, ObjectMonitoringInterface { + public const PROPERTY_UID = 'uid'; + public const PROPERTY_PID = 'pid'; + public const PROPERTY_LOCALIZED_UID = '_localizedUid'; + public const PROPERTY_LANGUAGE_UID = '_languageUid'; + public const PROPERTY_VERSIONED_UID = '_versionedUid'; + /** * @var int The uid of the record. The uid is only unique in the context of the database table. */ @@ -251,8 +257,8 @@ abstract class AbstractDomainObject implements DomainObjectInterface, ObjectMoni */ public function _isDirty($propertyName = null) { - if ($this->uid !== null && $this->_getCleanProperty('uid') !== null && $this->uid != $this->_getCleanProperty('uid')) { - throw new TooDirtyException('The uid "' . $this->uid . '" has been modified, that is simply too much.', 1222871239); + if ($this->uid !== null && $this->_getCleanProperty(self::PROPERTY_UID) !== null && $this->uid != $this->_getCleanProperty(self::PROPERTY_UID)) { + throw new TooDirtyException('The ' . self::PROPERTY_UID . ' "' . $this->uid . '" has been modified, that is simply too much.', 1222871239); } if ($propertyName === null) { diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php index 80a6cd636759..f2d8974cc43c 100644 --- a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php +++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php @@ -20,6 +20,7 @@ use TYPO3\CMS\Core\Database\ReferenceIndex; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\DomainObject\AbstractValueObject; use TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface; use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent; @@ -509,7 +510,7 @@ class Backend implements BackendInterface, SingletonInterface $row = []; $parentKeyFieldName = $parentColumnMap->getParentKeyFieldName(); if ($parentKeyFieldName !== null) { - $row[$parentKeyFieldName] = $parentObject->_getProperty('_localizedUid') ?: $parentObject->getUid(); + $row[$parentKeyFieldName] = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) ?: $parentObject->getUid(); $parentTableFieldName = $parentColumnMap->getParentTableFieldName(); if ($parentTableFieldName !== null) { $row[$parentTableFieldName] = $parentDataMap->getTableName(); @@ -577,7 +578,7 @@ class Backend implements BackendInterface, SingletonInterface if ($object instanceof AbstractValueObject) { $result = $this->getUidOfAlreadyPersistedValueObject($object); if ($result !== null) { - $object->_setProperty('uid', $result); + $object->_setProperty(AbstractDomainObject::PROPERTY_UID, $result); return; } } @@ -604,9 +605,9 @@ class Backend implements BackendInterface, SingletonInterface } } $this->addCommonFieldsToRow($object, $row); - if ($dataMap->getLanguageIdColumnName() !== null && $object->_getProperty('_languageUid') === null) { + if ($dataMap->getLanguageIdColumnName() !== null && $object->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) === null) { $row[$dataMap->getLanguageIdColumnName()] = 0; - $object->_setProperty('_languageUid', 0); + $object->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, 0); } if ($dataMap->getTranslationOriginColumnName() !== null) { $row[$dataMap->getTranslationOriginColumnName()] = 0; @@ -625,7 +626,7 @@ class Backend implements BackendInterface, SingletonInterface } } $uid = $this->storageBackend->addRow($dataMap->getTableName(), $row); - $object->_setProperty('uid', (int)$uid); + $object->_setProperty(AbstractDomainObject::PROPERTY_UID, (int)$uid); $object->setPid((int)$row['pid']); if ((int)$uid >= 1) { $this->eventDispatcher->dispatch(new EntityAddedToPersistenceEvent($object)); @@ -665,8 +666,8 @@ class Backend implements BackendInterface, SingletonInterface $dataMap = $this->dataMapFactory->buildDataMap(get_class($parentObject)); $columnMap = $dataMap->getColumnMap($propertyName); $parentUid = $parentObject->getUid(); - if ($parentObject->_getProperty('_localizedUid') !== null) { - $parentUid = $parentObject->_getProperty('_localizedUid'); + if ($parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) !== null) { + $parentUid = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID); } $row = [ $columnMap->getParentKeyFieldName() => (int)$parentUid, @@ -780,9 +781,9 @@ class Backend implements BackendInterface, SingletonInterface $this->addCommonFieldsToRow($object, $row); $row['uid'] = $object->getUid(); if ($dataMap->getLanguageIdColumnName() !== null) { - $row[$dataMap->getLanguageIdColumnName()] = (int)$object->_getProperty('_languageUid'); - if ($object->_getProperty('_localizedUid') !== null) { - $row['uid'] = $object->_getProperty('_localizedUid'); + $row[$dataMap->getLanguageIdColumnName()] = (int)$object->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID); + if ($object->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) !== null) { + $row['uid'] = $object->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID); } } $this->storageBackend->updateRow($dataMap->getTableName(), $row); @@ -923,8 +924,8 @@ class Backend implements BackendInterface, SingletonInterface { $frameworkConfiguration = $this->configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK); if ($object !== null) { - if (ObjectAccess::isPropertyGettable($object, 'pid')) { - $pid = ObjectAccess::getProperty($object, 'pid'); + if (ObjectAccess::isPropertyGettable($object, AbstractDomainObject::PROPERTY_PID)) { + $pid = ObjectAccess::getProperty($object, AbstractDomainObject::PROPERTY_PID); if (isset($pid)) { return (int)$pid; } diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php index 80e5007cafb7..2f90878a8def 100644 --- a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php +++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php @@ -20,6 +20,7 @@ use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Database\Query\QueryHelper; use TYPO3\CMS\Core\Database\RelationHandler; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface; use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent; use TYPO3\CMS\Extbase\Persistence; @@ -178,18 +179,18 @@ class DataMapper $className = get_class($object); $classSchema = $this->reflectionService->getClassSchema($className); $dataMap = $this->getDataMap($className); - $object->_setProperty('uid', (int)$row['uid']); - $object->_setProperty('pid', (int)($row['pid'] ?? 0)); - $object->_setProperty('_localizedUid', (int)$row['uid']); - $object->_setProperty('_versionedUid', (int)$row['uid']); + $object->_setProperty(AbstractDomainObject::PROPERTY_UID, (int)$row['uid']); + $object->_setProperty(AbstractDomainObject::PROPERTY_PID, (int)($row['pid'] ?? 0)); + $object->_setProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID, (int)$row['uid']); + $object->_setProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID, (int)$row['uid']); if ($dataMap->getLanguageIdColumnName() !== null) { - $object->_setProperty('_languageUid', (int)$row[$dataMap->getLanguageIdColumnName()]); + $object->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, (int)$row[$dataMap->getLanguageIdColumnName()]); if (isset($row['_LOCALIZED_UID'])) { - $object->_setProperty('_localizedUid', (int)$row['_LOCALIZED_UID']); + $object->_setProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID, (int)$row['_LOCALIZED_UID']); } } if (!empty($row['_ORIG_uid']) && !empty($GLOBALS['TCA'][$dataMap->getTableName()]['ctrl']['versioningWS'])) { - $object->_setProperty('_versionedUid', (int)$row['_ORIG_uid']); + $object->_setProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID, (int)$row['_ORIG_uid']); } $properties = $object->_getProperties(); foreach ($properties as $propertyName => $propertyValue) { @@ -406,7 +407,7 @@ class DataMapper //pass language of parent record to child objects, so they can be overlaid correctly in case //e.g. findByUid is used. //the languageUid is used for getRecordOverlay later on, despite RespectSysLanguage being false - $languageUid = (int)$parentObject->_getProperty('_languageUid'); + $languageUid = (int)$parentObject->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID); $query->getQuerySettings()->setLanguageUid($languageUid); } } @@ -471,8 +472,8 @@ class DataMapper // versioned record, so this must be taken into account here and the versioned record's UID must be used. if ($columnMap->getTypeOfRelation() === ColumnMap::RELATION_HAS_AND_BELONGS_TO_MANY) { // The versioned UID is used ideally the version ID of a translated record, so this takes precedence over the localized UID - if ($value->_hasProperty('_versionedUid') && $value->_getProperty('_versionedUid') > 0 && $value->_getProperty('_versionedUid') !== $value->getUid()) { - $value = (int)$value->_getProperty('_versionedUid'); + if ($value->_hasProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) && $value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) > 0 && $value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) !== $value->getUid()) { + $value = (int)$value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID); } } $constraint = $query->equals($columnMap->getParentKeyFieldName(), $value); @@ -514,10 +515,10 @@ class DataMapper { $parentId = $parentObject->getUid(); // versionedUid in a multi-language setup is the overlaid versioned AND translated ID - if ($parentObject->_hasProperty('_versionedUid') && $parentObject->_getProperty('_versionedUid') > 0 && $parentObject->_getProperty('_versionedUid') !== $parentId) { - $parentId = $parentObject->_getProperty('_versionedUid'); - } elseif ($parentObject->_hasProperty('_languageUid') && $parentObject->_getProperty('_languageUid') > 0) { - $parentId = $parentObject->_getProperty('_localizedUid'); + if ($parentObject->_hasProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) > 0 && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) !== $parentId) { + $parentId = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID); + } elseif ($parentObject->_hasProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) > 0) { + $parentId = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID); } $relationHandler = GeneralUtility::makeInstance(RelationHandler::class); $relationHandler->setWorkspaceId($workspaceId); diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php index 6ed71657f58d..68982e27b9d3 100644 --- a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php +++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php @@ -32,6 +32,7 @@ use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Versioning\VersionState; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\DomainObject\AbstractValueObject; use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper; use TYPO3\CMS\Extbase\Persistence\Generic\Qom; @@ -379,7 +380,7 @@ class Typo3DbBackend implements BackendInterface, SingletonInterface $propertyName = (string)$propertyName; // @todo We couple the Backend to the Entity implementation (uid, isClone); changes there breaks this method - if ($dataMap->isPersistableProperty($propertyName) && $propertyName !== 'uid' && $propertyName !== 'pid' && $propertyName !== 'isClone') { + if ($dataMap->isPersistableProperty($propertyName) && $propertyName !== AbstractDomainObject::PROPERTY_UID && $propertyName !== AbstractDomainObject::PROPERTY_PID && $propertyName !== 'isClone') { $fieldName = $dataMap->getColumnMap($propertyName)->getColumnName(); if ($propertyValue === null) { $whereClause[] = $queryBuilder->expr()->isNull($fieldName); diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php index 41ff00bdacdb..9dd204450291 100644 --- a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php +++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php @@ -515,10 +515,10 @@ class Typo3DbQueryParser protected function createTypedNamedParameter($value, int $forceType = null): string { if ($value instanceof AbstractDomainObject - && $value->_hasProperty('_localizedUid') - && $value->_getProperty('_localizedUid') > 0 + && $value->_hasProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) + && $value->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) > 0 ) { - $plainValue = (int)$value->_getProperty('_localizedUid'); + $plainValue = (int)$value->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID); } else { $plainValue = $this->dataMapper->getPlainValue($value); } diff --git a/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php b/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php index 1e7ebc11bd1d..331b7f2e77df 100644 --- a/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php +++ b/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php @@ -21,6 +21,7 @@ use ExtbaseTeam\BlogExample\Domain\Model\Blog; use ExtbaseTeam\BlogExample\Domain\Repository\BlogRepository; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager; use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase; @@ -119,7 +120,7 @@ class AddTest extends FunctionalTestCase $newBlogTitle = 'aDi1oogh'; $newBlog = new Blog(); $newBlog->setTitle($newBlogTitle); - $newBlog->_setProperty('_languageUid', -1); + $newBlog->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, -1); $this->blogRepository->add($newBlog); $this->persistentManager->persistAll(); diff --git a/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php b/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php index 0b5c38c6151a..5288d6779a14 100644 --- a/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php +++ b/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php @@ -26,6 +26,7 @@ use TYPO3\CMS\Core\Domain\Repository\PageRepository; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; use TYPO3\CMS\Extbase\Persistence\QueryInterface; @@ -112,13 +113,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -129,13 +130,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2translated->getTitle(), $post2translated->getUid(), - $post2translated->_getProperty('_localizedUid'), + $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getBlog()->getTitle(), $post2translated->getBlog()->getUid(), - $post2translated->getBlog()->_getProperty('_localizedUid'), + $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getAuthor()->getFirstname(), $post2translated->getAuthor()->getUid(), - $post2translated->getAuthor()->_getProperty('_localizedUid'), + $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -153,13 +154,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -169,13 +170,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2translated->getTitle(), $post2translated->getUid(), - $post2translated->_getProperty('_localizedUid'), + $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getBlog()->getTitle(), $post2translated->getBlog()->getUid(), - $post2translated->getBlog()->_getProperty('_localizedUid'), + $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getAuthor()->getFirstname(), $post2translated->getAuthor()->getUid(), - $post2translated->getAuthor()->_getProperty('_localizedUid'), + $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -193,13 +194,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -208,13 +209,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2translated->getTitle(), $post2translated->getUid(), - $post2translated->_getProperty('_localizedUid'), + $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getBlog()->getTitle(), $post2translated->getBlog()->getUid(), - $post2translated->getBlog()->_getProperty('_localizedUid'), + $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getAuthor()->getFirstname(), $post2translated->getAuthor()->getUid(), - $post2translated->getAuthor()->_getProperty('_localizedUid'), + $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -232,13 +233,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -248,13 +249,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2translated->getTitle(), $post2translated->getUid(), - $post2translated->_getProperty('_localizedUid'), + $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getBlog()->getTitle(), $post2translated->getBlog()->getUid(), - $post2translated->getBlog()->_getProperty('_localizedUid'), + $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2translated->getAuthor()->getFirstname(), $post2translated->getAuthor()->getUid(), - $post2translated->getAuthor()->_getProperty('_localizedUid'), + $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -281,13 +282,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -328,13 +329,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -359,13 +360,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); //this is needed because of https://forge.typo3.org/issues/59992 @@ -406,13 +407,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase self::assertEquals(['Post 2 - DK', 11, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [ $post2->getTitle(), $post2->getUid(), - $post2->_getProperty('_localizedUid'), + $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getBlog()->getTitle(), $post2->getBlog()->getUid(), - $post2->getBlog()->_getProperty('_localizedUid'), + $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), $post2->getAuthor()->getFirstname(), $post2->getAuthor()->getUid(), - $post2->getAuthor()->_getProperty('_localizedUid'), + $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID), ]); } @@ -422,99 +423,99 @@ class QueryLocalizedDataTest extends FunctionalTestCase $lang0Expected = [ [ 'title' => 'Post 4', - 'uid' => 4, - '_localizedUid' => 4, + AbstractDomainObject::PROPERTY_UID => 4, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4, 'content' => 'A - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags' => [], ], [ 'title' => 'Post 2', - 'uid' => 2, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 2, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'content' => 'B - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags.0.name' => 'Tag2', - 'tags.0.uid' => 2, - 'tags.0._localizedUid' => 2, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 2, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags.1.name' => 'Tag3', - 'tags.1.uid' => 3, - 'tags.1._localizedUid' => 3, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3, 'tags.2.name' => 'Tag4', - 'tags.2.uid' => 4, - 'tags.2._localizedUid' => 4, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 4, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4, ], [ 'title' => 'Post 7', - 'uid' => 7, - '_localizedUid' => 7, + AbstractDomainObject::PROPERTY_UID => 7, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7, 'content' => 'C - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags' => [], ], [ 'title' => 'Post 6', - 'uid' => 6, - '_localizedUid' => 6, + AbstractDomainObject::PROPERTY_UID => 6, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6, 'content' => 'F - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags' => [], ], [ 'title' => 'Post 1 - not translated', - 'uid' => 1, - '_localizedUid' => 1, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'content' => 'G - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'Never translate me henry', - 'secondAuthor.uid' => 3, - 'secondAuthor._localizedUid' => 3, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 3, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3, 'tags.0.name' => 'Tag1', - 'tags.0.uid' => 1, - 'tags.0._localizedUid' => 1, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 1, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags.1.name' => 'Tag2', - 'tags.1.uid' => 2, - 'tags.1._localizedUid' => 2, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 2, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags.2.name' => 'Tag3', - 'tags.2.uid' => 3, - 'tags.2._localizedUid' => 3, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3, ], ]; return [ @@ -534,105 +535,105 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 5 - DK', - 'uid' => 5, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 5, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 2 - DK', - 'uid' => 2, - '_localizedUid' => 11, + AbstractDomainObject::PROPERTY_UID => 2, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11, 'content' => 'C - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags.0.name' => 'Tag 3 DK', - 'tags.0.uid' => 3, - 'tags.0._localizedUid' => 18, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18, 'tags.1.name' => 'Tag4', - 'tags.1.uid' => 4, - 'tags.1._localizedUid' => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4, 'tags.2.name' => 'Tag5', - 'tags.2.uid' => 5, - 'tags.2._localizedUid' => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5, 'tags.3.name' => 'Tag 6 DK', - 'tags.3.uid' => 6, - 'tags.3._localizedUid' => 19, + 'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6, + 'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19, 'tags.4.name' => 'Tag7', - 'tags.4.uid' => 7, - 'tags.4._localizedUid' => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7, ], [ 'title' => 'Post 6', - 'uid' => 6, - '_localizedUid' => 6, + AbstractDomainObject::PROPERTY_UID => 6, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6, 'content' => 'F - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 1 - not translated', - 'uid' => 1, - '_localizedUid' => 1, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'content' => 'G - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Never translate me henry', - 'secondAuthor.uid' => 3, - 'secondAuthor._localizedUid' => 3, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 3, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3, 'tags.0.name' => 'Tag 1 DK', - 'tags.0.uid' => 1, - 'tags.0._localizedUid' => 16, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 1, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 16, 'tags.1.name' => 'Tag 2 DK', - 'tags.1.uid' => 2, - 'tags.1._localizedUid' => 17, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 2, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 17, 'tags.2.name' => 'Tag 3 DK', - 'tags.2.uid' => 3, - 'tags.2._localizedUid' => 18, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18, ], [ 'title' => 'Post 3', - 'uid' => 3, - '_localizedUid' => 3, + AbstractDomainObject::PROPERTY_UID => 3, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3, 'content' => 'I - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], ], @@ -645,80 +646,80 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 5 - DK', - 'uid' => 5, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 5, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 2 - DK', - 'uid' => 2, - '_localizedUid' => 11, + AbstractDomainObject::PROPERTY_UID => 2, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11, 'content' => 'C - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags.0.name' => 'Tag 3 DK', - 'tags.0.uid' => 3, - 'tags.0._localizedUid' => 18, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18, 'tags.1.name' => 'Tag4', - 'tags.1.uid' => 4, - 'tags.1._localizedUid' => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4, 'tags.2.name' => 'Tag5', - 'tags.2.uid' => 5, - 'tags.2._localizedUid' => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5, 'tags.3.name' => 'Tag 6 DK', - 'tags.3.uid' => 6, - 'tags.3._localizedUid' => 19, + 'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6, + 'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19, 'tags.4.name' => 'Tag7', - 'tags.4.uid' => 7, - 'tags.4._localizedUid' => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7, ], [ 'title' => 'Post 7 - DK', - 'uid' => 7, - '_localizedUid' => 14, + AbstractDomainObject::PROPERTY_UID => 7, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 14, 'content' => 'S - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 4 - DK', - 'uid' => 4, - '_localizedUid' => 12, + AbstractDomainObject::PROPERTY_UID => 4, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 12, 'content' => 'U - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], ], @@ -729,96 +730,96 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 5 - DK', - 'uid' => 13, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 13, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post DK only', - 'uid' => 15, - '_localizedUid' => 15, + AbstractDomainObject::PROPERTY_UID => 15, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 15, 'content' => 'B - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 2 - DK', - 'uid' => 11, - '_localizedUid' => 11, + AbstractDomainObject::PROPERTY_UID => 11, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11, 'content' => 'C - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags.0.name' => 'Tag 3 DK', - 'tags.0.uid' => 3, - 'tags.0._localizedUid' => 18, + 'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3, + 'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18, 'tags.1.name' => 'Tag4', - 'tags.1.uid' => 4, - 'tags.1._localizedUid' => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4, + 'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4, 'tags.2.name' => 'Tag5', - 'tags.2.uid' => 5, - 'tags.2._localizedUid' => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5, + 'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5, 'tags.3.name' => 'Tag 6 DK', - 'tags.3.uid' => 6, - 'tags.3._localizedUid' => 19, + 'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6, + 'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19, 'tags.4.name' => 'Tag7', - 'tags.4.uid' => 7, - 'tags.4._localizedUid' => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7, + 'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7, ], [ 'title' => 'Post 7 - DK', - 'uid' => 14, - '_localizedUid' => 14, + AbstractDomainObject::PROPERTY_UID => 14, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 14, 'content' => 'S - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], [ 'title' => 'Post 4 - DK', - 'uid' => 12, - '_localizedUid' => 12, + AbstractDomainObject::PROPERTY_UID => 12, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 12, 'content' => 'U - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'tags' => [], ], ], @@ -862,33 +863,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase $lang0Expected = [ [ 'title' => 'Post 5', - 'uid' => 5, - '_localizedUid' => 5, + AbstractDomainObject::PROPERTY_UID => 5, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5, 'content' => 'Z - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, ], [ 'title' => 'Post 6', - 'uid' => 6, - '_localizedUid' => 6, + AbstractDomainObject::PROPERTY_UID => 6, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6, 'content' => 'F - content', 'blog.title' => 'Blog 1', - 'blog.uid' => 1, - 'blog._localizedUid' => 1, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'author.firstname' => 'John', - 'author.uid' => 1, - 'author._localizedUid' => 1, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'secondAuthor.firstname' => 'John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, 'tags' => [], ], ]; @@ -915,33 +916,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 6', - 'uid' => 6, - '_localizedUid' => 6, + AbstractDomainObject::PROPERTY_UID => 6, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6, 'content' => 'F - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], [ 'title' => 'Post 5 - DK', - 'uid' => 5, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 5, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ], ], @@ -951,18 +952,18 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 5 - DK', - 'uid' => 5, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 5, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ], ], @@ -972,33 +973,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Post 5 - DK', - 'uid' => 13, - '_localizedUid' => 13, + AbstractDomainObject::PROPERTY_UID => 13, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13, 'content' => 'A - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], [ 'title' => 'Post DK only', - 'uid' => 15, - '_localizedUid' => 15, + AbstractDomainObject::PROPERTY_UID => 15, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 15, 'content' => 'B - content', 'blog.title' => 'Blog 1 DK', - 'blog.uid' => 1, - 'blog._localizedUid' => 2, + 'blog.' . AbstractDomainObject::PROPERTY_UID => 1, + 'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'author.firstname' => 'Translated John', - 'author.uid' => 1, - 'author._localizedUid' => 2, + 'author.' . AbstractDomainObject::PROPERTY_UID => 1, + 'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, 'secondAuthor.firstname' => 'Translated John', - 'secondAuthor.uid' => 1, - 'secondAuthor._localizedUid' => 2, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1, + 'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ], ], @@ -1045,25 +1046,25 @@ class QueryLocalizedDataTest extends FunctionalTestCase $lang0Expected = [ [ 'title' => 'Blog 1', - 'uid' => 1, - '_localizedUid' => 1, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, ], [ 'title' => 'Blog 1', - 'uid' => 1, - '_localizedUid' => 1, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, ], ]; $mixed = [ [ 'title' => 'Blog 1', - 'uid' => 1, - '_localizedUid' => 1, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1, ], [ 'title' => 'Blog 1 DK', - 'uid' => 2, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 2, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ]; return [ @@ -1093,13 +1094,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Blog 1 DK', - 'uid' => 1, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], [ 'title' => 'Blog 1 DK', - 'uid' => 1, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ], ], @@ -1109,13 +1110,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase 'expected' => [ [ 'title' => 'Blog 1 DK', - 'uid' => 1, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], [ 'title' => 'Blog 1 DK', - 'uid' => 1, - '_localizedUid' => 2, + AbstractDomainObject::PROPERTY_UID => 1, + AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2, ], ], ], diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php index 02bee9943756..ecdcacb512ea 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; +use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\Reflection\ClassSchema; use TYPO3\CMS\Extbase\Reflection\ReflectionService; use TYPO3\CMS\Extbase\Tests\Unit\Reflection\Fixture\DummyClassWithAllTypesOfMethods; @@ -82,11 +83,11 @@ class ClassSchemaTest extends UnitTestCase 'propertyWithCascadeAnnotationWithoutVarAnnotation', 'propertyWithObjectStorageAnnotation', 'propertyWithObjectStorageAnnotationWithoutFQCN', - 'uid', - '_localizedUid', - '_languageUid', - '_versionedUid', - 'pid', + AbstractDomainObject::PROPERTY_UID, + AbstractDomainObject::PROPERTY_LOCALIZED_UID, + AbstractDomainObject::PROPERTY_LANGUAGE_UID, + AbstractDomainObject::PROPERTY_VERSIONED_UID, + AbstractDomainObject::PROPERTY_PID, ], array_keys((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->getProperties()) ); -- GitLab