diff --git a/typo3/sysext/core/Classes/Resource/Driver/DriverInterface.php b/typo3/sysext/core/Classes/Resource/Driver/DriverInterface.php index c522cb758b390e4a44fedf1e8d025e3d37a8cbd9..78d04e5ebf21a45a49d45b7503a11aa003942921 100644 --- a/typo3/sysext/core/Classes/Resource/Driver/DriverInterface.php +++ b/typo3/sysext/core/Classes/Resource/Driver/DriverInterface.php @@ -437,7 +437,8 @@ interface DriverInterface * If a driver does not support the given property, it * should fall back to "name". * @param bool $sortRev TRUE to indicate reverse sorting (last to first) - * @return array of Folder Identifier + * @return array<string|int, string> folder identifiers (where key and value are identical, but int-like identifiers + * will get converted to int array keys) */ public function getFoldersInFolder($folderIdentifier, $start = 0, $numberOfItems = 0, $recursive = false, array $folderNameFilterCallbacks = [], $sort = '', $sortRev = false); diff --git a/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php b/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php index cc934127817a6198582f0f09b2e81145bfe88bab..b2d85a9d15931536d2582c9642c426f8e0d139a8 100644 --- a/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php +++ b/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php @@ -356,7 +356,8 @@ class LocalDriver extends AbstractHierarchicalFilesystemDriver implements Stream * If a driver does not support the given property, it * should fall back to "name". * @param bool $sortRev TRUE to indicate reverse sorting (last to first) - * @return array + * @return array<string|int, string> folder identifiers (where key and value are identical, but int-like identifiers + * will get converted to int array keys) * @throws \InvalidArgumentException */ protected function getDirectoryItemList($folderIdentifier, $start, $numberOfItems, array $filterMethods, $includeFiles = true, $includeDirs = true, $recursive = false, $sort = '', $sortRev = false) @@ -399,6 +400,7 @@ class LocalDriver extends AbstractHierarchicalFilesystemDriver implements Stream if ($start > 0) { $start--; } else { + // The identifier can also be an int-like string, resulting in int array keys. $items[$iteratorItem['identifier']] = $iteratorItem['identifier']; // Decrement item counter to make sure we only return $numberOfItems // we cannot do this earlier in the method (unlike moving the iterator forward) because we only add the @@ -503,7 +505,8 @@ class LocalDriver extends AbstractHierarchicalFilesystemDriver implements Stream * If a driver does not support the given property, it * should fall back to "name". * @param bool $sortRev TRUE to indicate reverse sorting (last to first) - * @return array of Folder Identifier + * @return array<string|int, string> folder identifiers (where key and value are identical, but int-like identifiers + * will get converted to int array keys) */ public function getFoldersInFolder($folderIdentifier, $start = 0, $numberOfItems = 0, $recursive = false, array $folderNameFilterCallbacks = [], $sort = '', $sortRev = false) { diff --git a/typo3/sysext/core/Classes/Resource/Folder.php b/typo3/sysext/core/Classes/Resource/Folder.php index a547cc694dc073112668875a42aa83899d8d65c4..20d37cb6f94c21df57198044e5e60c12a272b66f 100644 --- a/typo3/sysext/core/Classes/Resource/Folder.php +++ b/typo3/sysext/core/Classes/Resource/Folder.php @@ -282,13 +282,11 @@ class Folder implements FolderInterface } /** - * Returns a list of subfolders - * * @param int $start The item to start at * @param int $numberOfItems The number of items to return * @param int $filterMode The filter mode to use for the filelist. * @param bool $recursive - * @return Folder[] + * @return array<string|int, Folder> */ public function getSubfolders($start = 0, $numberOfItems = 0, $filterMode = self::FILTER_MODE_USE_OWN_AND_STORAGE_FILTERS, $recursive = false) { diff --git a/typo3/sysext/core/Classes/Resource/FolderInterface.php b/typo3/sysext/core/Classes/Resource/FolderInterface.php index 59ca1d43d15730f938daf4bbf2702e14787eb785..aaed937479d1aac366686d06a6512b245b8797c6 100644 --- a/typo3/sysext/core/Classes/Resource/FolderInterface.php +++ b/typo3/sysext/core/Classes/Resource/FolderInterface.php @@ -33,9 +33,7 @@ interface FolderInterface extends ResourceInterface const ROLE_USER_MOUNT = 'user-mount'; /** - * Returns a list of all subfolders - * - * @return Folder[] + * @return array<string|int, Folder> */ public function getSubfolders(); diff --git a/typo3/sysext/core/Classes/Resource/ResourceStorage.php b/typo3/sysext/core/Classes/Resource/ResourceStorage.php index 246b2f08a8f5d18ff35c64d090de4b46dc1eeb5c..0de4937d9c773c1edabc78f45957217a342678bc 100644 --- a/typo3/sysext/core/Classes/Resource/ResourceStorage.php +++ b/typo3/sysext/core/Classes/Resource/ResourceStorage.php @@ -2427,7 +2427,7 @@ class ResourceStorage implements ResourceStorageInterface * If a driver does not support the given property, it * should fall back to "name". * @param bool $sortRev TRUE to indicate reverse sorting (last to first) - * @return Folder[] + * @return array<string|int, Folder> */ public function getFoldersInFolder(Folder $folder, $start = 0, $maxNumberOfItems = 0, $useFilters = true, $recursive = false, $sort = '', $sortRev = false) { @@ -2445,6 +2445,7 @@ class ResourceStorage implements ResourceStorageInterface $folders = []; foreach ($folderIdentifiers as $folderIdentifier) { + // The folder identifier can also be an int-like string, resulting in int array keys. $folders[$folderIdentifier] = $this->getFolder($folderIdentifier, true); } return $folders; diff --git a/typo3/sysext/core/Classes/Resource/Utility/ListUtility.php b/typo3/sysext/core/Classes/Resource/Utility/ListUtility.php index b5a6530c6e4051f593e2c172fa7c704de2bb93e7..4809e973ec98192924272d322ee57a5e954b60cc 100644 --- a/typo3/sysext/core/Classes/Resource/Utility/ListUtility.php +++ b/typo3/sysext/core/Classes/Resource/Utility/ListUtility.php @@ -28,7 +28,7 @@ class ListUtility * Resolve special folders (by their role) into localised string * * @param Folder[] $folders - * @return array<string, Folder> array with Folders using the Folder name (with our without role) as key + * @return array<string|int, Folder> Folders using the Folder name (with or without role) as key */ public static function resolveSpecialFolderNames(array $folders) {