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
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
class SeedDMS_Version {
class SeedDMS_Version { /* {{{ */
public $_number = "5.1.14";
private $_string = "SeedDMS";
const _number = "5.1.14";
const _string = "SeedDMS";
function __construct() {
}
function version() {
return $this->_number;
}
function version() { /* {{{ */
return self::_number;
} /* }}} */
function majorVersion() {
$tmp = explode('.', $this->_number, 3);
function majorVersion() { /* {{{ */
$tmp = explode('.', self::_number, 3);
return (int) $tmp[0];
}
} /* }}} */
function minorVersion() {
$tmp = explode('.', $this->_number, 3);
function minorVersion() { /* {{{ */
$tmp = explode('.', self::_number, 3);
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);
return (int) $tmp[2];
}
function banner() {
return $this->_string .", ". $this->_number;
}
}
?>
/**
* Compare two version
*
* This functions compares the current version in the format x.x.x with
* the passed version
*
* @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;
}
}
}
} /* }}} */
} /* }}} */