From c7ea9e7f40ae15fb96cb6e930af012f174d1b15c Mon Sep 17 00:00:00 2001 From: Christian Kuhn Date: Mon, 30 Oct 2023 11:22:21 +0100 Subject: [PATCH] [TASK] Bump friendsofphp/php-cs-fixer:^3.37.1 Minor CGL streamlinings from latest php-cs-fixer. > composer req --dev friendsofphp/php-cs-fixer:^3.37.1 > Build/Scripts/runTests.sh -s cgl Resolves: #102285 Releases: main, 12.4, 11.5 Change-Id: I0cc1fe3c0f81f62a49df00d62d57ef3c593c57df Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81611 Tested-by: Oliver Klee Reviewed-by: Oliver Klee Tested-by: Christian Kuhn Tested-by: core-ci Reviewed-by: Christian Kuhn --- composer.json | 2 +- composer.lock | 14 +++++++------- .../ElementInformationController.php | 2 +- .../Classes/Controller/LoginController.php | 2 +- .../Module/BackendModuleRepository.php | 2 +- .../Classes/Form/InlineStackProcessor.php | 2 +- .../AbstractUserAuthentication.php | 4 ++-- .../core/Classes/DataHandling/DataHandler.php | 12 ++++++------ .../Localization/DataMapProcessor.php | 2 +- .../Classes/Database/Driver/PDOPgSql/Driver.php | 2 +- typo3/sysext/core/Classes/Html/SimpleParser.php | 16 ++++++++-------- .../LinkHandling/LegacyLinkNotationConverter.php | 2 +- .../core/Classes/Resource/Driver/LocalDriver.php | 2 +- .../Routing/Aspect/PersistedPatternMapper.php | 2 +- .../Generic/Storage/Typo3DbBackend.php | 2 +- .../Classes/Routing/ExtbasePluginEnhancer.php | 4 ++-- typo3/sysext/filelist/Classes/FileList.php | 4 ++-- .../Classes/DataProcessing/GalleryProcessor.php | 4 ++-- .../Classes/Middleware/PageArgumentValidator.php | 2 +- .../Functional/Utility/LikeWildcardTest.php | 2 +- .../Classes/Command/MissingRelationsCommand.php | 2 +- 21 files changed, 43 insertions(+), 43 deletions(-) diff --git a/composer.json b/composer.json index cd588f3456c0..68638c8f7c20 100644 --- a/composer.json +++ b/composer.json @@ -113,7 +113,7 @@ "composer/composer": "^2.2.22", "composer/package-versions-deprecated": "^1.11.99.4", "cweagans/composer-patches": "^1.7.1", - "friendsofphp/php-cs-fixer": "^3.35.1", + "friendsofphp/php-cs-fixer": "^3.37.1", "friendsoftypo3/phpstan-typo3": "^0.9.0", "jangregor/phpstan-prophecy": "^1.0", "php-webdriver/webdriver": "^1.12.0", diff --git a/composer.lock b/composer.lock index 6b39beeed988..571de3e1ed04 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5d471b974acdd411bf42452990547621", + "content-hash": "dd3af25ec4a97765f03c9bf04eee6af8", "packages": [ { "name": "bacon/bacon-qr-code", @@ -6492,16 +6492,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.35.1", + "version": "v3.37.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "ec1ccc264994b6764882669973ca435cf05bab08" + "reference": "c3fe76976081ab871aa654e872da588077e19679" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/ec1ccc264994b6764882669973ca435cf05bab08", - "reference": "ec1ccc264994b6764882669973ca435cf05bab08", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/c3fe76976081ab871aa654e872da588077e19679", + "reference": "c3fe76976081ab871aa654e872da588077e19679", "shasum": "" }, "require": { @@ -6573,7 +6573,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.35.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.37.1" }, "funding": [ { @@ -6581,7 +6581,7 @@ "type": "github" } ], - "time": "2023-10-12T13:47:26+00:00" + "time": "2023-10-29T20:51:23+00:00" }, { "name": "friendsoftypo3/phpstan-typo3", diff --git a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php index 6b98b6125be8..ee6442e2ed62 100644 --- a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php +++ b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php @@ -314,7 +314,7 @@ protected function getPreview(): array // Check if there is a FileRenderer if ($fileRenderer !== null) { $preview['fileRenderer'] = $fileRenderer->render($this->fileObject, $width, $height); - // else check if we can create an Image preview + // else check if we can create an Image preview } elseif ($this->fileObject->isImage()) { $preview['fileObject'] = $this->fileObject; $preview['width'] = $width; diff --git a/typo3/sysext/backend/Classes/Controller/LoginController.php b/typo3/sysext/backend/Classes/Controller/LoginController.php index 9e53771ad5e1..64c0252b7249 100644 --- a/typo3/sysext/backend/Classes/Controller/LoginController.php +++ b/typo3/sysext/backend/Classes/Controller/LoginController.php @@ -406,7 +406,7 @@ protected function checkRedirect(ServerRequestInterface $request): void if ($this->loginRefresh) { $formProtection->setSessionTokenFromRegistry(); $formProtection->persistSessionToken(); - // triggering `TYPO3/CMS/Backend/LoginRefresh` module happens in `TYPO3/CMS/Backend/Login` + // triggering `TYPO3/CMS/Backend/LoginRefresh` module happens in `TYPO3/CMS/Backend/Login` } else { $formProtection->storeSessionTokenInRegistry(); $this->redirectToUrl(); diff --git a/typo3/sysext/backend/Classes/Domain/Repository/Module/BackendModuleRepository.php b/typo3/sysext/backend/Classes/Domain/Repository/Module/BackendModuleRepository.php index ce4690e32660..05dd59f90dc3 100644 --- a/typo3/sysext/backend/Classes/Domain/Repository/Module/BackendModuleRepository.php +++ b/typo3/sysext/backend/Classes/Domain/Repository/Module/BackendModuleRepository.php @@ -184,7 +184,7 @@ protected function createEntryFromRawData(array $module) // @deprecated since TYPO3 v11, will be removed in TYPO3 v12.0 if (!empty($module['navigationFrameScript']) && is_string($module['navigationFrameScript'])) { $entry->setNavigationFrameScript($module['navigationFrameScript']); - // @deprecated since TYPO3 v11, will be removed in TYPO3 v12.0 + // @deprecated since TYPO3 v11, will be removed in TYPO3 v12.0 } elseif (!empty($module['parentNavigationFrameScript']) && is_string($module['parentNavigationFrameScript'])) { $entry->setNavigationFrameScript($module['parentNavigationFrameScript']); } diff --git a/typo3/sysext/backend/Classes/Form/InlineStackProcessor.php b/typo3/sysext/backend/Classes/Form/InlineStackProcessor.php index 786db00e568b..c25b0511f4b3 100644 --- a/typo3/sysext/backend/Classes/Form/InlineStackProcessor.php +++ b/typo3/sysext/backend/Classes/Form/InlineStackProcessor.php @@ -284,7 +284,7 @@ protected function getStructureItemName($levelData, $disposal = 'Disposal_Attrib $parts[] = implode('][', $levelData['flexform']); } $name = '[' . implode('][', $parts) . ']'; - // Use in object id attributes: + // Use in object id attributes: } else { $name = implode('-', $parts); diff --git a/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php b/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php index 23ea562f8503..da2e9d492b03 100644 --- a/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php +++ b/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php @@ -591,8 +591,8 @@ public function checkAuthentication(ServerRequestInterface $request = null) break; } } - // mimic user authentication to mitigate observable timing discrepancies - // @link https://cwe.mitre.org/data/definitions/208.html + // mimic user authentication to mitigate observable timing discrepancies + // @link https://cwe.mitre.org/data/definitions/208.html } elseif ($activeLogin) { $subType = 'authUser' . $this->loginType; foreach ($this->getAuthServices($subType, $loginData, $authInfo) as $serviceObj) { diff --git a/typo3/sysext/core/Classes/DataHandling/DataHandler.php b/typo3/sysext/core/Classes/DataHandling/DataHandler.php index a7e01d8af8a2..e356a73f6aa5 100644 --- a/typo3/sysext/core/Classes/DataHandling/DataHandler.php +++ b/typo3/sysext/core/Classes/DataHandling/DataHandler.php @@ -3862,7 +3862,7 @@ protected function copyRecord_processInline( } else { if (!MathUtility::canBeInterpretedAsInteger($realDestPid)) { $newId = $this->copyRecord($v['table'], $v['id'], -(int)($v['id'])); - // If the destination page id is a NEW string, keep it on the same page + // If the destination page id is a NEW string, keep it on the same page } elseif ($this->BE_USER->workspace > 0 && BackendUtility::isTableWorkspaceEnabled($v['table'])) { // A filled $workspaceOptions indicated that this call // has it's origin in previous versionizeRecord() processing @@ -3876,7 +3876,7 @@ protected function copyRecord_processInline( $workspaceOptions['label'] ?? 'Auto-created for WS #' . $this->BE_USER->workspace, $workspaceOptions['delete'] ?? false ); - // Otherwise just use plain copyRecord() to create placeholders etc. + // Otherwise just use plain copyRecord() to create placeholders etc. } else { // If a record has been copied already during this request, // prevent superfluous duplication and use the existing copy @@ -8135,15 +8135,15 @@ protected function isSubmittedValueEqualToStoredValue($submittedValue, $storedVa // Thus, check whether strings are the same or whether integer values are empty ("0" or ""). if (!$allowNull) { $result = (string)$submittedValue === (string)$storedValue || $storedType === 'int' && (int)$storedValue === (int)$submittedValue; - // Null values are allowed, but currently there's a real (not NULL) value. - // Thus, ensure no NULL value was submitted and fallback to the regular behaviour. + // Null values are allowed, but currently there's a real (not NULL) value. + // Thus, ensure no NULL value was submitted and fallback to the regular behaviour. } elseif ($storedValue !== null) { $result = ( $submittedValue !== null && $this->isSubmittedValueEqualToStoredValue($submittedValue, $storedValue, $storedType, false) ); - // Null values are allowed, and currently there's a NULL value. - // Thus, check whether a NULL value was submitted. + // Null values are allowed, and currently there's a NULL value. + // Thus, check whether a NULL value was submitted. } else { $result = ($submittedValue === null); } diff --git a/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php b/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php index 6db66afd611e..241256f67d14 100644 --- a/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php +++ b/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php @@ -1068,7 +1068,7 @@ protected function fetchDependentIdMap(string $tableName, array $ids, int $desir // implicit: use origin pointer if table cannot be translated if (!$isTranslatable) { $ancestorId = (int)$dependentElement[$fieldNames['origin']]; - // only consider element if it reflects the desired language + // only consider element if it reflects the desired language } elseif ((int)$dependentElement[$fieldNames['language']] === $desiredLanguage) { $ancestorId = $this->resolveAncestorId($fieldNames, $dependentElement); } else { diff --git a/typo3/sysext/core/Classes/Database/Driver/PDOPgSql/Driver.php b/typo3/sysext/core/Classes/Database/Driver/PDOPgSql/Driver.php index 4a6e19c6f836..be9a66a0f59a 100644 --- a/typo3/sysext/core/Classes/Database/Driver/PDOPgSql/Driver.php +++ b/typo3/sysext/core/Classes/Database/Driver/PDOPgSql/Driver.php @@ -44,7 +44,7 @@ public function connect(array $params, $username = null, $password = null, array if (defined('PDO::PGSQL_ATTR_DISABLE_PREPARES') && ( - ! isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES]) + !isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES]) || $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES] === true ) ) { diff --git a/typo3/sysext/core/Classes/Html/SimpleParser.php b/typo3/sysext/core/Classes/Html/SimpleParser.php index f2a86dcf948c..f38ee156b86f 100644 --- a/typo3/sysext/core/Classes/Html/SimpleParser.php +++ b/typo3/sysext/core/Classes/Html/SimpleParser.php @@ -132,53 +132,53 @@ protected function process(string $string): void $this->next(SimpleNode::TYPE_CDATA); $this->append('isType(SimpleNode::TYPE_TEXT) && substr($string, $i, 4) === '' ) { $this->append('-->'); $this->next(SimpleNode::TYPE_TEXT); $skip = 2; - // element end + // element end } elseif ($character === '>' && $this->isType(SimpleNode::TYPE_ELEMENT) && !$this->inAttribute() ) { $this->append($character); $this->next(SimpleNode::TYPE_TEXT); - // element attribute start + // element attribute start } elseif (($character === '"' || $character === "'") && $this->isType(SimpleNode::TYPE_ELEMENT) && !$this->inAttribute() ) { $this->attribute = $character; $this->append($character); - // element attribute end + // element attribute end } elseif (($character === '"' || $character === "'") && $this->isType(SimpleNode::TYPE_ELEMENT) && $this->attribute === $character ) { $this->append($character); $this->attribute = null; - // anything else (put to current type) + // anything else (put to current type) } else { $this->append($character); } diff --git a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php index e439c27d9faa..740dd86c51a7 100644 --- a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php +++ b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php @@ -140,7 +140,7 @@ public function resolve(string $linkParameter): array if (!$isIdOrAlias && $isLocalFile !== 1 && $urlChar && (!$containsSlash || $urlChar < $fileChar)) { $result['type'] = LinkService::TYPE_URL; $result['url'] = UrlLinkHandler::getDefaultScheme() . '://' . $linkParameter; - // file (internal) or folder + // file (internal) or folder } elseif ($containsSlash || $isLocalFile) { $result = $this->getFileOrFolderObjectFromMixedIdentifier($linkParameter); } else { diff --git a/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php b/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php index 38bb6ed40867..b29a2fc4cbef 100644 --- a/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php +++ b/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php @@ -376,7 +376,7 @@ protected function getDirectoryItemList($folderIdentifier, $start, $numberOfItem } // $c is the counter for how many items we still have to fetch (-1 is unlimited) - $c = $numberOfItems > 0 ? $numberOfItems : - 1; + $c = $numberOfItems > 0 ? $numberOfItems : -1; $items = []; while ($iterator->valid() && ($numberOfItems === 0 || $c > 0)) { // $iteratorItem is the file or folder name diff --git a/typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php b/typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php index e72568bf0add..956d41c42f11 100644 --- a/typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php +++ b/typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php @@ -292,7 +292,7 @@ protected function createRouteFieldConstraints(QueryBuilder $queryBuilder, array $queryBuilder->expr()->eq('uid', $idParameter), $queryBuilder->expr()->eq($this->languageParentFieldName, $idParameter) ); - // otherwise - basically uid is not in pattern - restrict to languages and apply fallbacks + // otherwise - basically uid is not in pattern - restrict to languages and apply fallbacks } elseif ($languageAware) { $languageIds = $this->resolveAllRelevantLanguageIds(); $constraints[] = $queryBuilder->expr()->in( diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php index 0694755ada7c..3fe7bba7e9b9 100644 --- a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php +++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php @@ -278,7 +278,7 @@ protected function getObjectDataByRawQuery(Statement $statement): array throw new SqlErrorException($e->getPrevious()->getMessage(), 1472064721, $e); } $rows = $result->fetchAllAssociative(); - // Prepared Doctrine DBAL statement + // Prepared Doctrine DBAL statement } elseif ($realStatement instanceof \Doctrine\DBAL\Statement) { try { $result = $realStatement->executeQuery($parameters); diff --git a/typo3/sysext/extbase/Classes/Routing/ExtbasePluginEnhancer.php b/typo3/sysext/extbase/Classes/Routing/ExtbasePluginEnhancer.php index d846309dae47..6cf8000386a1 100644 --- a/typo3/sysext/extbase/Classes/Routing/ExtbasePluginEnhancer.php +++ b/typo3/sysext/extbase/Classes/Routing/ExtbasePluginEnhancer.php @@ -235,10 +235,10 @@ protected function applyControllerActionValues(string $controllerActionValue, ar // use default action name if controller matches if ($tryUpdate && empty($target['action']) && $controllerName === ($target['controller'] ?? null)) { $target['action'] = $actionName; - // use default controller name if action is defined (implies: non-default-controllers must be given) + // use default controller name if action is defined (implies: non-default-controllers must be given) } elseif ($tryUpdate && empty($target['controller']) && !empty($target['action'])) { $target['controller'] = $controllerName; - // fallback and override + // fallback and override } else { $target['controller'] = $controllerName; $target['action'] = $actionName; diff --git a/typo3/sysext/filelist/Classes/FileList.php b/typo3/sysext/filelist/Classes/FileList.php index 29e9d6231a7e..57435d5e58ff 100644 --- a/typo3/sysext/filelist/Classes/FileList.php +++ b/typo3/sysext/filelist/Classes/FileList.php @@ -714,7 +714,7 @@ public function formatFileList(array $files) $theData[$field] .= '' . htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.file_missing')) . ''; - // Thumbnails? + // Thumbnails? } elseif ($this->thumbs && ($fileObject->isImage() || $fileObject->isMediaFile())) { $processedFile = $fileObject->process( ProcessedFile::CONTEXT_IMAGEPREVIEW, @@ -1031,7 +1031,7 @@ public function makeEdit($fileOrFolderObject) if ($fileUrl) { $cells['download'] = '' . $this->iconFactory->getIcon('actions-download', Icon::SIZE_SMALL)->render() . ''; } - // Folder download + // Folder download } elseif ($fileOrFolderObject instanceof Folder) { $cells['download'] = ''; } diff --git a/typo3/sysext/frontend/Classes/DataProcessing/GalleryProcessor.php b/typo3/sysext/frontend/Classes/DataProcessing/GalleryProcessor.php index 6aa9363e0934..44b88b537920 100644 --- a/typo3/sysext/frontend/Classes/DataProcessing/GalleryProcessor.php +++ b/typo3/sysext/frontend/Classes/DataProcessing/GalleryProcessor.php @@ -422,7 +422,7 @@ protected function calculateMediaWidthsAndHeights() // Recalculate gallery width $this->galleryData['width'] = floor($maximumRowWidth / $mediaScalingCorrection); - // User entered a predefined width + // User entered a predefined width } elseif ($this->equalMediaWidth) { $mediaScalingCorrection = 1; @@ -446,7 +446,7 @@ protected function calculateMediaWidthsAndHeights() // Recalculate gallery width $this->galleryData['width'] = floor($totalRowWidth / $mediaScalingCorrection); - // Automatic setting of width and height + // Automatic setting of width and height } else { $maxMediaWidth = (int)($galleryWidthMinusBorderAndSpacing / $this->galleryData['count']['columns']); foreach ($this->fileObjects as $key => $fileObject) { diff --git a/typo3/sysext/frontend/Classes/Middleware/PageArgumentValidator.php b/typo3/sysext/frontend/Classes/Middleware/PageArgumentValidator.php index e4e4e88f87d9..3ce21fffc8c2 100644 --- a/typo3/sysext/frontend/Classes/Middleware/PageArgumentValidator.php +++ b/typo3/sysext/frontend/Classes/Middleware/PageArgumentValidator.php @@ -118,7 +118,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface ['code' => PageAccessFailureReasons::CACHEHASH_COMPARISON_FAILED] ); } - // No cHash given but was required + // No cHash given but was required } elseif (!$this->evaluatePageArgumentsWithoutCacheHash($pageArguments, $pageNotFoundOnValidationError)) { return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( $request, diff --git a/typo3/sysext/indexed_search/Tests/Functional/Utility/LikeWildcardTest.php b/typo3/sysext/indexed_search/Tests/Functional/Utility/LikeWildcardTest.php index 480de80e9f84..9e20bc12d66f 100644 --- a/typo3/sysext/indexed_search/Tests/Functional/Utility/LikeWildcardTest.php +++ b/typo3/sysext/indexed_search/Tests/Functional/Utility/LikeWildcardTest.php @@ -51,7 +51,7 @@ public function getLikeQueryPart(string $tableName, string $fieldName, string $l $expected = addcslashes($expected, '\\'); } $expected = $connection->quoteIdentifier($fieldName) . ' ' . $expected; - if (! $connection->getDatabasePlatform() instanceof PostgreSQLPlatform) { + if (!$connection->getDatabasePlatform() instanceof PostgreSQLPlatform) { $expected .= ' ESCAPE ' . $connection->quote('\\'); } self::assertSame($expected, $subject->getLikeQueryPart($tableName, $fieldName, $likeValue)); diff --git a/typo3/sysext/lowlevel/Classes/Command/MissingRelationsCommand.php b/typo3/sysext/lowlevel/Classes/Command/MissingRelationsCommand.php index f4ae4d81629d..59f081195aaa 100644 --- a/typo3/sysext/lowlevel/Classes/Command/MissingRelationsCommand.php +++ b/typo3/sysext/lowlevel/Classes/Command/MissingRelationsCommand.php @@ -292,7 +292,7 @@ protected function findRelationsToNonExistingRecords(): array } else { $offlineVersionRecords[$idx][$rec['hash']] = $infoString; } - // reference to a deleted record + // reference to a deleted record } elseif (isset($GLOBALS['TCA'][$rec['ref_table']]['ctrl']['delete']) && $existingRecords[$idx][$GLOBALS['TCA'][$rec['ref_table']]['ctrl']['delete']]) { if ($isSoftReference) { $deletedRecordsInSoftReferenceRelations[] = $infoString;