add cmpVersion() function, make _number and _banner const

This commit is contained in:
Uwe Steinmann 2020-02-06 12:02:02 +01:00
parent 2b685a835e
commit 8f041cb072

View File

@ -18,34 +18,69 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
class SeedDMS_Version { class SeedDMS_Version { /* {{{ */
public $_number = "5.1.14"; const _number = "5.1.14";
private $_string = "SeedDMS"; const _string = "SeedDMS";
function __construct() { function __construct() {
} }
function version() { function version() { /* {{{ */
return $this->_number; return self::_number;
} } /* }}} */
function majorVersion() { function majorVersion() { /* {{{ */
$tmp = explode('.', $this->_number, 3); $tmp = explode('.', self::_number, 3);
return (int) $tmp[0]; return (int) $tmp[0];
} } /* }}} */
function minorVersion() { function minorVersion() { /* {{{ */
$tmp = explode('.', $this->_number, 3); $tmp = explode('.', self::_number, 3);
return (int) $tmp[1]; return (int) $tmp[1];
} /* }}} */
function subminorVersion() { /* {{{ */
$tmp = explode('.', self::_number, 3);
return (int) $tmp[2];
} /* }}} */
function banner() { /* {{{ */
return self::_string .", ". self::_number;
} }
function subminorVersion() { /**
$tmp = explode('.', $this->_number, 3); * Compare two version
return (int) $tmp[2]; *
} * This functions compares the current version in the format x.x.x with
function banner() { * the passed version
return $this->_string .", ". $this->_number; *
} * @param string $ver
} * @return int -1 if _number < $ver, 0 if _number == $ver, 1 if _number > $ver
?> */
static public function cmpVersion($ver) { /* {{{ */
$tmp1 = explode('.', self::_number);
$tmp2 = explode('.', $ver);
if(intval($tmp1[0]) < intval($tmp2[0])) {
return -1;
} elseif(intval($tmp1[0]) > intval($tmp2[0])) {
return 1;
} else {
if(intval($tmp1[1]) < intval($tmp2[1])) {
return -1;
} elseif(intval($tmp1[1]) > intval($tmp2[1])) {
return 1;
} else {
if(intval($tmp1[2]) < intval($tmp2[2])) {
return -1;
} elseif(intval($tmp1[2]) > intval($tmp2[2])) {
return 1;
} else {
return 0;
}
}
}
} /* }}} */
} /* }}} */