[TASK] Deprecate AbstractFunctionModule->incLocalLang() 09/52209/4
authorBenni Mack <benni@typo3.org>
Tue, 28 Mar 2017 10:17:14 +0000 (12:17 +0200)
committerGeorg Ringer <georg.ringer@gmail.com>
Tue, 28 Mar 2017 12:31:02 +0000 (14:31 +0200)
Loading a locallang.xlf inside the abstract function module now uses the regular
$GLOBALS['LANG']->includeLLFile() of the current file, instead of doing a manual
check on .xml and .php extensions, which the LanguageService/LanguageFactory
is taking care of anyway.

The PHP method incLocalLang() and the now not necessarily needed $thisPath
are therefore marked as deprecated.

Resolves: #80511
Releases: master
Change-Id: I3a9d27bf794a4cd8c1f2d31ed9250d634aa68ee8
Reviewed-on: https://review.typo3.org/52209
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php
typo3/sysext/core/Documentation/Changelog/master/Deprecation-80511-AbstractFunctionModule-incLocalLangAndThisPath.rst [new file with mode: 0644]

index b1fe905..e9e3d86 100644 (file)
@@ -126,16 +126,18 @@ abstract class AbstractFunctionModule
      *
      * @see init()
      * @var string
+     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
      */
     public $thisPath = '';
 
     /**
      * Can be hardcoded to the name of a locallang.xlf file (from the same directory as the class file) to use/load
+     * and is included / added to $GLOBALS['LOCAL_LANG']
      *
-     * @see incLocalLang()
+     * @see init()
      * @var string
      */
-    public $localLangFile = 'locallang.xlf';
+    public $localLangFile = '';
 
     /**
      * Contains module configuration parts from TBE_MODULES_EXT if found
@@ -178,7 +180,9 @@ abstract class AbstractFunctionModule
             throw new \RuntimeException('TYPO3 Fatal Error: Could not find path for class ' . get_class($this), 1381164687);
         }
         // Local lang:
-        $this->incLocalLang();
+        if (!empty($this->localLangFile)) {
+            $this->getLanguageService()->includeLLFile($this->localLangFile);
+        }
         // Setting MOD_MENU items as we need them for logging:
         $this->pObj->MOD_MENU = array_merge($this->pObj->MOD_MENU, $this->modMenu());
     }
@@ -201,9 +205,11 @@ abstract class AbstractFunctionModule
     /**
      * Including any locallang file configured and merging its content over
      * the current global LOCAL_LANG array (which is EXPECTED to exist!!!)
+     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
      */
     public function incLocalLang()
     {
+        GeneralUtility::logDeprecatedFunction();
         if (
             $this->localLangFile
             && (
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-80511-AbstractFunctionModule-incLocalLangAndThisPath.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-80511-AbstractFunctionModule-incLocalLangAndThisPath.rst
new file mode 100644 (file)
index 0000000..25c069b
--- /dev/null
@@ -0,0 +1,39 @@
+.. include:: ../../Includes.txt
+
+========================================================================
+Deprecation: #80511 - AbstractFunctionModule->incLocalLang and $thisPath
+========================================================================
+
+See :issue:`80511`
+
+Description
+===========
+
+The method php:`AbstractFunctionModule->incLocalLang()` and the public property
+php:`AbstractFunctionModule->thisPath` have been marked as deprecated.
+
+
+Impact
+======
+
+Calling method above will trigger a deprecation log entry.
+
+
+Affected Installations
+======================
+
+Any extension extending the AbstractFunctionModule and calling the mentioned method.
+
+
+Migration
+=========
+
+The functionality of loading a locallang file is now taken care of by php:`LanguageService::includeLLFile()` and takes care of everything automatically.
+
+If any specific calls to the method is made, it should be replaced by the LanguageService equivalent.
+
+The property php:`$thisPath` contains the path to the class, which can be accessed via Reflection, 
+as it is done currently as well, should be implemented in the custom extension itself that needs this
+information.
+
+.. index:: Backend, PHP-API
\ No newline at end of file