Open Journal Systems  3.3.0
RuntimeEnvironment.inc.php
1 <?php
18  var $_phpVersionMin;
19 
22 
24  var $_phpExtensions;
25 
28 
29  function __construct($phpVersionMin = PHP_REQUIRED_VERSION, $phpVersionMax = null, $phpExtensions = array(), $externalPrograms = array()) {
30  $this->_phpVersionMin = $phpVersionMin;
31  $this->_phpVersionMax = $phpVersionMax;
32  $this->_phpExtensions = $phpExtensions;
33  $this->_externalPrograms = $externalPrograms;
34  }
35 
36  //
37  // Setters and Getters
38  //
43  function getPhpVersionMin() {
44  return $this->_phpVersionMin;
45  }
46 
51  function getPhpVersionMax() {
52  return $this->_phpVersionMax;
53  }
54 
59  function getPhpExtensions() {
60  return $this->_phpExtensions;
61  }
62 
67  function getExternalPrograms() {
69  }
70 
71 
72  //
73  // Public methods
74  //
80  function isCompatible() {
81  // Check PHP version
82  if (!is_null($this->_phpVersionMin) && !checkPhpVersion($this->_phpVersionMin)) return false;
83  if (!is_null($this->_phpVersionMax) && version_compare(PHP_VERSION, $this->_phpVersionMax) === 1) return false;
84 
85  // Check PHP extensions
86  foreach($this->_phpExtensions as $requiredExtension) {
87  if(!extension_loaded($requiredExtension)) return false;
88  }
89 
90  // Check external programs
91  foreach($this->_externalPrograms as $requiredProgram) {
92  $externalProgram = Config::getVar('cli', $requiredProgram);
93  if (!file_exists($externalProgram)) return false;
94  if (function_exists('is_executable')) {
95  if (!is_executable($externalProgram)) return false;
96  }
97  }
98 
99  // Compatibility check was successful
100  return true;
101  }
102 }
103 
RuntimeEnvironment\getPhpVersionMax
getPhpVersionMax()
Definition: RuntimeEnvironment.inc.php:63
RuntimeEnvironment\getPhpExtensions
getPhpExtensions()
Definition: RuntimeEnvironment.inc.php:71
RuntimeEnvironment\$_phpExtensions
$_phpExtensions
Definition: RuntimeEnvironment.inc.php:33
RuntimeEnvironment\$_externalPrograms
$_externalPrograms
Definition: RuntimeEnvironment.inc.php:39
RuntimeEnvironment\$_phpVersionMin
$_phpVersionMin
Definition: RuntimeEnvironment.inc.php:21
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
RuntimeEnvironment\isCompatible
isCompatible()
Definition: RuntimeEnvironment.inc.php:92
RuntimeEnvironment\getExternalPrograms
getExternalPrograms()
Definition: RuntimeEnvironment.inc.php:79
RuntimeEnvironment
Class that describes a runtime environment.
Definition: RuntimeEnvironment.inc.php:16
RuntimeEnvironment\getPhpVersionMin
getPhpVersionMin()
Definition: RuntimeEnvironment.inc.php:55
checkPhpVersion
checkPhpVersion($version)
Definition: functions.inc.php:132
RuntimeEnvironment\__construct
__construct($phpVersionMin=PHP_REQUIRED_VERSION, $phpVersionMax=null, $phpExtensions=array(), $externalPrograms=array())
Definition: RuntimeEnvironment.inc.php:41
RuntimeEnvironment\$_phpVersionMax
$_phpVersionMax
Definition: RuntimeEnvironment.inc.php:27