Aaron Schulz has uploaded a new change for review. https://gerrit.wikimedia.org/r/311366
Change subject: Remove MimeMagic depedency from FSFile and move it to /libs ...................................................................... Remove MimeMagic depedency from FSFile and move it to /libs Change-Id: Ieaae909b49c798b6e9bed65d15961cefbdaec49b --- M autoload.php M includes/MimeMagic.php R includes/libs/filebackend/FSFile.php R includes/libs/filebackend/TempFSFile.php 4 files changed, 18 insertions(+), 40 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/66/311366/1 diff --git a/autoload.php b/autoload.php index a07df96..6188a93 100644 --- a/autoload.php +++ b/autoload.php @@ -432,7 +432,7 @@ 'ExternalStoreHttp' => __DIR__ . '/includes/externalstore/ExternalStoreHttp.php', 'ExternalStoreMedium' => __DIR__ . '/includes/externalstore/ExternalStoreMedium.php', 'ExternalStoreMwstore' => __DIR__ . '/includes/externalstore/ExternalStoreMwstore.php', - 'FSFile' => __DIR__ . '/includes/filebackend/FSFile.php', + 'FSFile' => __DIR__ . '/includes/libs/filebackend/FSFile.php', 'FSFileBackend' => __DIR__ . '/includes/filebackend/FSFileBackend.php', 'FSFileBackendDirList' => __DIR__ . '/includes/filebackend/FSFileBackend.php', 'FSFileBackendFileList' => __DIR__ . '/includes/filebackend/FSFileBackend.php', @@ -1402,7 +1402,7 @@ 'TableDiffFormatter' => __DIR__ . '/includes/diff/TableDiffFormatter.php', 'TablePager' => __DIR__ . '/includes/pager/TablePager.php', 'TagLogFormatter' => __DIR__ . '/includes/logging/TagLogFormatter.php', - 'TempFSFile' => __DIR__ . '/includes/filebackend/TempFSFile.php', + 'TempFSFile' => __DIR__ . '/includes/libs/filebackend/TempFSFile.php', 'TempFileRepo' => __DIR__ . '/includes/filerepo/FileRepo.php', 'TemplateParser' => __DIR__ . '/includes/TemplateParser.php', 'TemplatesOnThisPageFormatter' => __DIR__ . '/includes/TemplatesOnThisPageFormatter.php', diff --git a/includes/MimeMagic.php b/includes/MimeMagic.php index d33b436..824678f 100644 --- a/includes/MimeMagic.php +++ b/includes/MimeMagic.php @@ -380,13 +380,13 @@ * - fileExists * - size (filesize in bytes) * - mime (as major/minor) + * - file-mime (as major/minor) * - media_type (value to be used with the MEDIATYPE_xxx constants) * - metadata (handler specific) * - sha1 (in base 36) * - width * - height * - bits (bitrate) - * - file-mime * - major_mime * - minor_mime * @@ -405,13 +405,10 @@ $path = $fsFile->getPath(); $magic = MimeMagic::singleton(); - if ( $ext === true ) { - $ext = FileBackend::extensionFromPath( $path ); - } - # MIME type according to file contents $info['file-mime'] = $magic->guessMimeType( $path, false ); # logical MIME type + $ext = ( $ext === true ) ? FileBackend::extensionFromPath( $path ) : $ext; $info['mime'] = $magic->improveTypeFromExtension( $info['file-mime'], $ext ); list( $info['major_mime'], $info['minor_mime'] ) = File::splitMime( $info['mime'] ); diff --git a/includes/filebackend/FSFile.php b/includes/libs/filebackend/FSFile.php similarity index 81% rename from includes/filebackend/FSFile.php rename to includes/libs/filebackend/FSFile.php index c40e48d..e77e7eb 100644 --- a/includes/filebackend/FSFile.php +++ b/includes/libs/filebackend/FSFile.php @@ -93,18 +93,17 @@ * - fileExists * - size (filesize in bytes) * - mime (as major/minor) - * - media_type (value to be used with the MEDIATYPE_xxx constants) + * - file-mime (as major/minor) * - metadata (handler specific) * - sha1 (in base 36) * - width * - height * - bits (bitrate) - * - file-mime * - major_mime * - minor_mime * * @param string|bool $ext The file extension, or true to extract it from the filename. - * Set it to false to ignore the extension. + * Set it to false to ignore the extension. Currently unused. * @return array */ public function getProps( $ext = true ) { @@ -113,35 +112,19 @@ if ( $info['fileExists'] ) { $info['size'] = $this->getSize(); // bytes - - // @TODO: replace the below with bare FileInfo use so this can go in /libs - $magic = MimeMagic::singleton(); - - if ( $ext === true ) { - $ext = self::extensionFromPath( $this->path ); - } - - # MIME type according to file contents - $info['file-mime'] = $magic->guessMimeType( $this->path, false ); - # logical MIME type - $info['mime'] = $magic->improveTypeFromExtension( $info['file-mime'], $ext ); - - list( $info['major_mime'], $info['minor_mime'] ) = File::splitMime( $info['mime'] ); - $info['media_type'] = $magic->getMediaType( $this->path, $info['mime'] ); - - # Height, width and metadata - $handler = MediaHandler::getHandler( $info['mime'] ); - if ( $handler ) { - $tempImage = (object)[]; // XXX (hack for File object) - /** @noinspection PhpParamsInspection */ - $info['metadata'] = $handler->getMetadata( $tempImage, $this->path ); - /** @noinspection PhpParamsInspection */ - $gis = $handler->getImageSize( $tempImage, $this->path, $info['metadata'] ); - if ( is_array( $gis ) ) { - $info = $this->extractImageSizeInfo( $gis ) + $info; - } - } $info['sha1'] = $this->getSha1Base36(); + + $mime = mime_content_type( $this->path ); + # MIME type according to file contents + $info['file-mime'] = ( $mime === false ) ? 'unknown/unknown' : $mime; + # logical MIME type + $info['mime'] = $mime; + + if ( strpos( $mime, '/' ) !== false ) { + list( $info['major_mime'], $info['minor_mime'] ) = explode( '/', $mime, 2 ); + } else { + list( $info['major_mime'], $info['minor_mime'] ) = [ $mime, 'unknown' ]; + } } return $info; @@ -153,7 +136,6 @@ * Resulting array fields include: * - fileExists * - mime (as major/minor) - * - media_type (value to be used with the MEDIATYPE_xxx constants) * - metadata (handler specific) * - sha1 (in base 36) * - width @@ -166,7 +148,6 @@ $info = []; $info['fileExists'] = false; $info['mime'] = null; - $info['media_type'] = MEDIATYPE_UNKNOWN; $info['metadata'] = ''; $info['sha1'] = ''; $info['width'] = 0; diff --git a/includes/filebackend/TempFSFile.php b/includes/libs/filebackend/TempFSFile.php similarity index 100% rename from includes/filebackend/TempFSFile.php rename to includes/libs/filebackend/TempFSFile.php -- To view, visit https://gerrit.wikimedia.org/r/311366 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ieaae909b49c798b6e9bed65d15961cefbdaec49b Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits