aboutsummaryrefslogtreecommitdiffstats
path: root/includes/media/TransformationalImageHandler.php
diff options
context:
space:
mode:
authorAaron Schulz <aschulz@wikimedia.org>2015-10-26 01:15:09 -0700
committerAaron Schulz <aschulz@wikimedia.org>2015-10-26 01:15:09 -0700
commit33765cb8dd33759ca7edaffcb9e082d5e3b17043 (patch)
tree895a60027a6462afebd5b9f1aff8ef7899b1d214 /includes/media/TransformationalImageHandler.php
parent23ae30d61cca3148451d0b1971d2d466fb6aebad (diff)
downloadmediawikicore-33765cb8dd33759ca7edaffcb9e082d5e3b17043.tar.gz
mediawikicore-33765cb8dd33759ca7edaffcb9e082d5e3b17043.zip
Convert getMagickVersion() to using APC
Shelling out on my slow vagrant VM takes about ~3-4ms so it's probably not worth a fallback. Change-Id: Ifd5758264cc15f1ae07972e839a243f5f891503e
Diffstat (limited to 'includes/media/TransformationalImageHandler.php')
-rw-r--r--includes/media/TransformationalImageHandler.php43
1 files changed, 22 insertions, 21 deletions
diff --git a/includes/media/TransformationalImageHandler.php b/includes/media/TransformationalImageHandler.php
index 15753a96eb30..35581493ee15 100644
--- a/includes/media/TransformationalImageHandler.php
+++ b/includes/media/TransformationalImageHandler.php
@@ -505,30 +505,31 @@ abstract class TransformationalImageHandler extends ImageHandler {
* Retrieve the version of the installed ImageMagick
* You can use PHPs version_compare() to use this value
* Value is cached for one hour.
- * @return string Representing the IM version.
+ * @return string|bool Representing the IM version; false on error
*/
protected function getMagickVersion() {
- global $wgMemc;
-
- $cache = $wgMemc->get( "imagemagick-version" );
- if ( !$cache ) {
- global $wgImageMagickConvertCommand;
- $cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . ' -version';
- wfDebug( __METHOD__ . ": Running convert -version\n" );
- $retval = '';
- $return = wfShellExec( $cmd, $retval );
- $x = preg_match( '/Version: ImageMagick ([0-9]*\.[0-9]*\.[0-9]*)/', $return, $matches );
- if ( $x != 1 ) {
- wfDebug( __METHOD__ . ": ImageMagick version check failed\n" );
-
- return null;
+ return ObjectCache::newAccelerator( CACHE_NONE )->getWithSetCallback(
+ "imagemagick-version",
+ 3600,
+ function () {
+ global $wgImageMagickConvertCommand;
+
+ $cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . ' -version';
+ wfDebug( __METHOD__ . ": Running convert -version\n" );
+ $retval = '';
+ $return = wfShellExec( $cmd, $retval );
+ $x = preg_match(
+ '/Version: ImageMagick ([0-9]*\.[0-9]*\.[0-9]*)/', $return, $matches
+ );
+ if ( $x != 1 ) {
+ wfDebug( __METHOD__ . ": ImageMagick version check failed\n" );
+
+ return false;
+ }
+
+ return $matches[1];
}
- $wgMemc->set( "imagemagick-version", $matches[1], 3600 );
-
- return $matches[1];
- }
-
- return $cache;
+ );
}
/**