87 lines
2.5 KiB
PHP
87 lines
2.5 KiB
PHP
<?php
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
if (! class_exists ( 'PostmanPreRequisitesCheck' )) {
|
|
class PostmanPreRequisitesCheck {
|
|
public static function checkIconv() {
|
|
return function_exists ( 'iconv' );
|
|
}
|
|
public static function checkSpl() {
|
|
return function_exists ( 'spl_autoload_register' );
|
|
}
|
|
public static function checkZlibEncode() {
|
|
return extension_loaded ( "zlib" ) && function_exists ( 'gzcompress' ) && function_exists ( 'gzuncompress' );
|
|
}
|
|
public static function checkOpenSsl() {
|
|
// apparently curl can use ssl libraries in the OS, and doesn't need ssl in PHP
|
|
return extension_loaded ( 'openssl' ) || extension_loaded ( 'php_openssl' );
|
|
}
|
|
public static function checkSockets() {
|
|
return extension_loaded ( 'sockets' ) || extension_loaded ( 'php_sockets' );
|
|
}
|
|
public static function checkAllowUrlFopen() {
|
|
return filter_var ( ini_get ( 'allow_url_fopen' ), FILTER_VALIDATE_BOOLEAN );
|
|
}
|
|
public static function checkMcrypt() {
|
|
return function_exists ( 'mcrypt_get_iv_size' ) && function_exists ( 'mcrypt_create_iv' ) && function_exists ( 'mcrypt_encrypt' ) && function_exists ( 'mcrypt_decrypt' );
|
|
}
|
|
/**
|
|
* Return an array of state:
|
|
* [n][name=>x,ready=>true|false,required=true|false]
|
|
*/
|
|
public static function getState() {
|
|
$state = array ();
|
|
array_push ( $state, array (
|
|
'name' => 'iconv',
|
|
'ready' => self::checkIconv (),
|
|
'required' => true
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'spl_autoload',
|
|
'ready' => self::checkSpl (),
|
|
'required' => true
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'openssl',
|
|
'ready' => self::checkOpenSsl (),
|
|
'required' => false
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'sockets',
|
|
'ready' => self::checkSockets (),
|
|
'required' => false
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'allow_url_fopen',
|
|
'ready' => self::checkAllowUrlFopen (),
|
|
'required' => false
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'mcrypt',
|
|
'ready' => self::checkMcrypt (),
|
|
'required' => false
|
|
) );
|
|
array_push ( $state, array (
|
|
'name' => 'zlib_encode',
|
|
'ready' => self::checkZlibEncode (),
|
|
'required' => false
|
|
) );
|
|
return $state;
|
|
}
|
|
/**
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function isReady() {
|
|
$states = self::getState ();
|
|
foreach ( $states as $state ) {
|
|
if ($state ['ready'] == false && $state ['required'] == true) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
} |