From a38cc25301435fe726bcb8ca2e8e06f1df547411 Mon Sep 17 00:00:00 2001 From: Philipp Dieter Date: Tue, 3 Mar 2026 12:02:27 +0100 Subject: [PATCH] [TASK] Add features to apiUtility and interfaceUtility --- Classes/Utility/ApiUtility.php | 13 ++++++++++--- Classes/Utility/InterfaceUtility.php | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Classes/Utility/ApiUtility.php b/Classes/Utility/ApiUtility.php index 19837d9..261d90b 100644 --- a/Classes/Utility/ApiUtility.php +++ b/Classes/Utility/ApiUtility.php @@ -44,7 +44,8 @@ class ApiUtility $queryResult, $additionalAttributes = [], $mapping = [], - $rootRowClass = null + $rootRowClass = null, + $options = [] ) { $this->objectManager = GeneralUtility::makeInstance( ObjectManager::class @@ -130,7 +131,8 @@ class ApiUtility $methodResult, $additionalAttributes[$attributeName], $mapping, - $nextLevelClass + $nextLevelClass, + $options ); if ($imageStorage) { foreach ($attributeResult as &$attributeResultRow) { @@ -167,7 +169,8 @@ class ApiUtility [$methodResult], $additionalAttributes[$attributeName], $mapping, - $nextLevelClass + $nextLevelClass, + $options )[0]; $rowResult[$attributeName . 'Uid'] = $rowResult[$attributeName]['uid']; @@ -218,6 +221,10 @@ class ApiUtility } } } + if (($options['clearIds'] ?? '' ) === true) { + unset($rowResult['uid']); + unset($rowResult['pid']); + } $result[] = $rowResult; } return $result; diff --git a/Classes/Utility/InterfaceUtility.php b/Classes/Utility/InterfaceUtility.php index db5ae8f..9329bcf 100644 --- a/Classes/Utility/InterfaceUtility.php +++ b/Classes/Utility/InterfaceUtility.php @@ -37,4 +37,22 @@ class InterfaceUtility }, ARRAY_FILTER_USE_KEY); return array_values($constants); } + + /** + * Get all interface constants per prefix + */ + public static function parseInterfaceConstantsAssoc( + $interfaceClass, $prefix + ) { + $constants = (new \ReflectionClass($interfaceClass)) + ->getConstants(); + $constants = array_filter($constants, function($key) use ($prefix) { + if (substr($key, 0, strlen($prefix) + 1) + == strtoupper($prefix) . '_' + ) { + return true; + } + }, ARRAY_FILTER_USE_KEY); + return $constants; + } }