[API][!!!] Fix API compatibility break in tslib_pibase
authorDmitry Dulepov <dmitry@typo3.org>
Thu, 14 Jul 2011 13:23:32 +0000 (15:23 +0200)
committerJigal van Hemert <jigal@xs4all.nl>
Thu, 14 Jul 2011 15:03:09 +0000 (17:03 +0200)
Revision 50cbf264 removed the old tslib_pibase constructor without
deprecating it first as required by TYPO3 core rules. This breaks
every FE plugin, which overrides the old tslib_pibase constructor.
The change was commited to Git here: https://review.typo3.org/1797

The fix: reintroduce the old constructor and deprecate it.

Change-Id: I66653025b9bf9e2d1e4a0dddb6d0913c50c387c2
Resolves: #28208
Releases: 4.6
Reviewed-on: http://review.typo3.org/3325
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
typo3/sysext/cms/tslib/class.tslib_pibase.php

index 496be4f..a036026 100644 (file)
@@ -162,6 +162,19 @@ class tslib_pibase {
        }
 
        /**
+        * Compatibility constructor.
+        *
+        * @deprecated since TYPO3 4.6 and will be removed in TYPO3 4.8. Use __construct() instead.
+        */
+       public function tslib_pibase() {
+               t3lib_div::logDeprecatedFunction();
+                       // Note: we cannot call $this->__construct() here because it would call the derived class constructor and cause recursion
+                       // This code uses official PHP behavior (http://www.php.net/manual/en/language.oop5.basic.php) when $this in the
+                       // statically called non-static method inherits $this from the caller's scope.
+               tslib_pibase::__construct();
+       }
+
+       /**
         * If internal TypoScript property "_DEFAULT_PI_VARS." is set then it will merge the current $this->piVars array onto these default values.
         *
         * @return      void
@@ -1314,4 +1327,4 @@ class tslib_pibase {
 
 // NO extension of class - does not make sense here.
 
-?>
\ No newline at end of file
+?>