static function ( $val, &$reason ) { if ( !ExtensionRegistry::getInstance()->isLoaded( 'Maps' ) ) { $reason = "Dependency: Maps (or Semantic Maps) as requirement for the test is not available!"; return false; } [ $compare, $requiredVersion ] = explode( ' ', $val ); $version = ExtensionRegistry::getInstance()->getAllThings()['Maps']['version']; if ( !version_compare( $version, $requiredVersion, $compare ) ) { $reason = "Dependency: Required version of Maps ($requiredVersion $compare $version) is not available!"; return false; } return true; }, 'ext-intl' => static function ( $val, &$reason ) { if ( !extension_loaded( 'intl' ) ) { $reason = "Dependency: ext-intl (PHP extension, ICU collation) as requirement for the test is not available!"; return false; } return true; }, 'ICU' => static function ( $val, &$reason ) { if ( !extension_loaded( 'intl' ) ) { $reason = "Dependency: ext-intl (PHP extension, ICU collation) as requirement for the test is not available!"; return false; } [ $compare, $requiredVersion ] = explode( ' ', $val ); $version = INTL_ICU_VERSION; if ( !version_compare( $version, $requiredVersion, $compare ) ) { $reason = "Dependency: Requires at least ICU version {$requiredVersion} but only {$version} is available!"; return false; } return true; } ]; } }