diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-03-18 14:25:26 +0100 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-03-18 15:34:28 +0100 |
commit | d5efd17942cc901b82ccc4717b6bf755dc565997 (patch) | |
tree | 81e0621f38e5873e55230c56ca3c7a90a7b79f24 | |
parent | 9d738f6124fbe66b8e10a05ef596022617b526ac (diff) | |
download | nextcloud-server-fix/IMimeTypeDetector-types.tar.gz nextcloud-server-fix/IMimeTypeDetector-types.zip |
fix(IMimeTypeDetector): use correct return typefix/IMimeTypeDetector-types
In PHP array keys that are integers are always kept as integer,
meaning the type of the key of `$a = ["1" => "one"]` will be integer not
string.
While are hacks to circumvent this (case std object with string keys to
an assoc. array) those hacks are performance wise awefull and also not
needed as in PHP you can always access that element with `$a[1]` or
`$a["1"]`.
So TL;DR;: do not lie about return types.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
-rw-r--r-- | lib/private/Files/Type/Detection.php | 4 | ||||
-rw-r--r-- | lib/public/Files/IMimeTypeDetector.php | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php index 48907b3473f..09d73231f22 100644 --- a/lib/private/Files/Type/Detection.php +++ b/lib/private/Files/Type/Detection.php @@ -23,7 +23,7 @@ class Detection implements IMimeTypeDetector { private const CUSTOM_MIMETYPEMAPPING = 'mimetypemapping.json'; private const CUSTOM_MIMETYPEALIASES = 'mimetypealiases.json'; - /** @var array<string, list{string, string|null}> */ + /** @var array<list{string, string|null}> */ protected array $mimetypes = []; protected array $secureMimeTypes = []; @@ -140,7 +140,7 @@ class Detection implements IMimeTypeDetector { } /** - * @return array<string, list{string, string|null}> + * @return array<list{string, string|null}> */ public function getAllMappings(): array { $this->loadMappings(); diff --git a/lib/public/Files/IMimeTypeDetector.php b/lib/public/Files/IMimeTypeDetector.php index 6f3e498c203..944b22ee1af 100644 --- a/lib/public/Files/IMimeTypeDetector.php +++ b/lib/public/Files/IMimeTypeDetector.php @@ -75,7 +75,15 @@ interface IMimeTypeDetector { public function getAllAliases(): array; /** - * @return array<string, list{string, string|null}> + * Get all extension to MIME type mappings. + * + * The return format is an array of the file extension, as the key, + * mapped to a list where the first entry is the MIME type + * and the second entry is the secure MIME type (or null if none). + * Due to PHP idiosyncrasies if a numeric string is set as the extension, + * then also the array key (file extension) is a number instead of a string. + * + * @return array<list{string, string|null}> * @since 32.0.0 */ public function getAllMappings(): array; |