aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2025-03-18 14:25:26 +0100
committerFerdinand Thiessen <opensource@fthiessen.de>2025-03-18 15:34:28 +0100
commitd5efd17942cc901b82ccc4717b6bf755dc565997 (patch)
tree81e0621f38e5873e55230c56ca3c7a90a7b79f24
parent9d738f6124fbe66b8e10a05ef596022617b526ac (diff)
downloadnextcloud-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.php4
-rw-r--r--lib/public/Files/IMimeTypeDetector.php10
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;