From 8f041cb072efa353f493cab4cf4111569aae0a93 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 6 Feb 2020 12:02:02 +0100 Subject: [PATCH] add cmpVersion() function, make _number and _banner const --- inc/inc.Version.php | 75 +++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/inc/inc.Version.php b/inc/inc.Version.php index bd2c1d827..c4a50edfa 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -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; + } + } + } + } /* }}} */ + +} /* }}} */ +