[FEATURE] Backport t3lib_utility_Version
authorXavier Perseguers <typo3@perseguers.ch>
Wed, 27 Jul 2011 07:54:12 +0000 (09:54 +0200)
committerXavier Perseguers <typo3@perseguers.ch>
Thu, 28 Jul 2011 14:57:56 +0000 (16:57 +0200)
Deprecating t3lib_div::int_from_ver() in 4.6 leads to major developer
annoyance because this method is used to switch to compatibility code
for older versions of TYPO3 in extensions and a hocus-pocus is needed
to prevent calling it if using 4.6.

Prepare this major deprecation by backporting
t3lib_utility_Version::convertVersionNumberToInteger() but without
refactoring existing code to use it.

Change-Id: I72673a483e5e716b24ebb6a89aaee3e09aaa7e65
Resolves: #28499
Releases: 4.5
Reviewed-on: http://review.typo3.org/3732
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Benjamin Mack
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
t3lib/class.t3lib_div.php
t3lib/core_autoload.php
t3lib/utility/class.t3lib_utility_versionnumber.php [new file with mode: 0644]

index 10f1670..3ddb723 100644 (file)
@@ -1090,10 +1090,13 @@ final class t3lib_div {
 
        /**
         * Returns an integer from a three part version number, eg '4.12.3' -> 4012003
+        * This method will be deprecated in TYPO3 4.6. You are encouraged to start using
+        * t3lib_utility_VersionNumber::convertVersionNumberToInteger() instead
         * Usage: 2
         *
         * @param       string          Version number on format x.x.x
         * @return      integer         Integer version of version number (where each part can count to 999)
+        * @see t3lib_utility_VersionNumber::convertVersionNumberToInteger()
         */
        public static function int_from_ver($verNumberStr) {
                $verParts = explode('.', $verNumberStr);
index 806d274..5b46eba 100644 (file)
@@ -160,6 +160,7 @@ $t3libClasses = array(
        't3lib_utility_mail' => PATH_t3lib . 'utility/class.t3lib_utility_mail.php',
        't3lib_utility_phpoptions' => PATH_t3lib . 'utility/class.t3lib_utility_phpoptions.php',
        't3lib_utility_debug' => PATH_t3lib . 'utility/class.t3lib_utility_debug.php',
+       't3lib_utility_versionnumber' => PATH_t3lib . 'utility/class.t3lib_utility_versionnumber.php',
        't3lib_spritemanager' => PATH_t3lib . 'class.t3lib_spritemanager.php',
        't3lib_spritemanager_spritegenerator' => PATH_t3lib . 'spritemanager/class.t3lib_spritemanager_spritegenerator.php',
        't3lib_spritemanager_spriteicongenerator' => PATH_t3lib . 'interfaces/interface.t3lib_spritemanager_spriteicongenerator.php',
diff --git a/t3lib/utility/class.t3lib_utility_versionnumber.php b/t3lib/utility/class.t3lib_utility_versionnumber.php
new file mode 100644 (file)
index 0000000..02c068b
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2011 Susanne Moog <typo3@susanne-moog.de>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * Class with helper functions for version number handling
+ *
+ * @author Susanne Moog <typo3@susanne-moog.de>
+ * @package TYPO3
+ * @subpackage t3lib
+ */
+
+final class t3lib_utility_VersionNumber {
+
+       /**
+        * Returns an integer from a three part version number, eg '4.12.3' -> 4012003
+        *
+        * @param $versionNumber string Version number on format x.x.x
+        * @return integer Integer version of version number (where each part can count to 999)
+        */
+       public static function convertVersionNumberToInteger($versionNumber) {
+               $versionParts = explode('.', $versionNumber);
+               return intval((int) $versionParts[0] . str_pad((int) $versionParts[1], 3, '0', STR_PAD_LEFT) . str_pad((int) $versionParts[2], 3, '0', STR_PAD_LEFT));
+       }
+}
+
+?>
\ No newline at end of file