WP_Image_Editor_Imagick::test PHP Method

test() public static method

We require Imagick 2.2.0 or greater, based on whether the queryFormats() method can be called statically.
Since: 3.5.0
public static test ( array $args = [] ) : boolean
$args array
return boolean
    public static function test($args = array())
    {
        // First, test Imagick's extension and classes.
        if (!extension_loaded('imagick') || !class_exists('Imagick', false) || !class_exists('ImagickPixel', false)) {
            return false;
        }
        if (version_compare(phpversion('imagick'), '2.2.0', '<')) {
            return false;
        }
        $required_methods = array('clear', 'destroy', 'valid', 'getimage', 'writeimage', 'getimageblob', 'getimagegeometry', 'getimageformat', 'setimageformat', 'setimagecompression', 'setimagecompressionquality', 'setimagepage', 'setoption', 'scaleimage', 'cropimage', 'rotateimage', 'flipimage', 'flopimage', 'readimage');
        // Now, test for deep requirements within Imagick.
        if (!defined('imagick::COMPRESSION_JPEG')) {
            return false;
        }
        $class_methods = array_map('strtolower', get_class_methods('Imagick'));
        if (array_diff($required_methods, $class_methods)) {
            return false;
        }
        // HHVM Imagick does not support loading from URL, so fail to allow fallback to GD.
        if (defined('HHVM_VERSION') && isset($args['path']) && preg_match('|^https?://|', $args['path'])) {
            return false;
        }
        return true;
    }

Usage Example

 /**
  * @return bool Whether WP_Image_Editor_Imagick can be used on this system.
  */
 public static function isImagickAvailable()
 {
     static $ret = null;
     if (is_null($ret)) {
         $ret = WP_Image_Editor_Imagick::test();
     }
     return $ret;
 }
All Usage Examples Of WP_Image_Editor_Imagick::test