This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
aktiv-web/wp-content/plugins/google-calendar-events/gce-requirements.php
T
2015-07-23 16:01:02 +02:00

135 lines
3.0 KiB
PHP

<?php
/**
* WP Requirements
*
* Utility to check current PHP version, WordPress version and PHP extensions.
*
* @package WP_Requirements
* @version 1.0.0
* @author Fulvio Notarstefano <fulvio.notarstefano@gmail.com>
* @link https://github.com/nekojira/wp-requirements
* @license GPL2+
*/
if ( ! class_exists( 'GCE_Requirements' ) ) {
class GCE_Requirements {
/**
* WordPress.
*
* @access private
* @var bool
*/
private $wp = true;
/**
* PHP.
*
* @access private
* @var bool
*/
private $php = true;
/**
* PHP Extensions.
*
* @access private
* @var bool
*/
private $extensions = true;
/**
* Results failures.
*
* Associative array with requirements results.
*
* @access private
* @var array
*/
private $failures = array();
/**
* Constructor.
*
* @param array $requirements Associative array with requirements.
*/
public function __construct( $requirements ) {
if ( $requirements && is_array( $requirements ) ) {
$errors = array();
$requirements = array_merge( array( 'wp' => '', 'php' => '', 'extensions' => '' ), (array) $requirements );
// Check for WordPress version.
if ( $requirements['wp'] && is_string( $requirements['wp'] ) ) {
global $wp_version;
// If $wp_version isn't found or valid probably you are not running WordPress (properly)?
$wp_ver = $wp_version && is_string( $wp_version ) ? $wp_version : $requirements['wp'];
$wp_ver = version_compare( $wp_ver, $requirements['wp'] );
if ( $wp_ver === -1 ) {
$errors['wp'] = $wp_version;
$this->wp = false;
}
}
// Check fo PHP version.
if ( $requirements['php'] && is_string( $requirements['php'] ) ) {
$php_ver = version_compare( PHP_VERSION, $requirements['php'] );
if ( $php_ver === -1 ) {
$errors['php'] = PHP_VERSION;
$this->php = false;
}
}
// Check fo PHP Extensions.
if ( $requirements['extensions'] && is_array( $requirements['extensions'] ) ) {
$extensions = array();
foreach ( $requirements['extensions'] as $extension ) {
if ( $extension && is_string( $extension ) ) {
$extensions[ $extension ] = extension_loaded( $extension );
}
}
if ( in_array( false, $extensions ) ) {
foreach ( $extensions as $extension_name => $found ) {
if ( $found === false ) {
$errors['extensions'][ $extension_name ] = $extension_name;
}
}
$this->extensions = false;
}
}
$this->failures = $errors;
} else {
trigger_error( 'WP Requirements: the requirements are invalid.', E_USER_ERROR );
}
}
/**
* Get requirements results.
*
* @return array
*/
public function failures() {
return $this->failures;
}
/**
* Check if versions check pass.
*
* @return bool
*/
public function pass() {
if ( in_array( false, array( $this->wp, $this->php, $this->extensions ) ) ) {
return false;
}
return true;
}
}
}