Fix and improve PHPDoc type hints in FileBackend and FileRepo
[lhc/web/wiklou.git] / includes / filerepo / file / ForeignAPIFile.php
index 43b6855..be88b49 100644 (file)
@@ -33,7 +33,7 @@ class ForeignAPIFile extends File {
        /** @var array */
        private $mInfo = [];
 
-       protected $repoClass = 'ForeignApiRepo';
+       protected $repoClass = ForeignApiRepo::class;
 
        /**
         * @param Title|string|bool $title
@@ -192,8 +192,8 @@ class ForeignAPIFile extends File {
        }
 
        /**
-        * @param array $metadata
-        * @return array
+        * @param mixed $metadata
+        * @return mixed
         */
        public static function parseMetadata( $metadata ) {
                if ( !is_array( $metadata ) ) {
@@ -254,7 +254,7 @@ class ForeignAPIFile extends File {
 
        /**
         * @param int $audience
-        * @param User $user
+        * @param User|null $user
         * @return null|string
         */
        public function getDescription( $audience = self::FOR_PUBLIC, User $user = null ) {
@@ -286,7 +286,7 @@ class ForeignAPIFile extends File {
         */
        function getMimeType() {
                if ( !isset( $this->mInfo['mime'] ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $this->mInfo['mime'] = $magic->guessTypesForExtension( $this->getExtension() );
                }
 
@@ -300,7 +300,7 @@ class ForeignAPIFile extends File {
                if ( isset( $this->mInfo['mediatype'] ) ) {
                        return $this->mInfo['mediatype'];
                }
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                return $magic->getMediaType( null, $this->getMimeType() );
        }
@@ -333,15 +333,17 @@ class ForeignAPIFile extends File {
        }
 
        /**
-        * @return array
+        * @return string[]
         */
        function getThumbnails() {
                $dir = $this->getThumbPath( $this->getName() );
                $iter = $this->repo->getBackend()->getFileList( [ 'dir' => $dir ] );
 
                $files = [];
-               foreach ( $iter as $file ) {
-                       $files[] = $file;
+               if ( $iter ) {
+                       foreach ( $iter as $file ) {
+                               $files[] = $file;
+                       }
                }
 
                return $files;