[TASK] BasicFileUtility::init is not deprecated yet 74/28674/3
authorErnesto Baschny <ernst@cron-it.de>
Sun, 23 Mar 2014 16:58:41 +0000 (17:58 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Mon, 24 Mar 2014 20:08:41 +0000 (21:08 +0100)
Until we fully remove usage of BasicFileUtility throughout the core
(i.e. DataHandler, Import/Export module, ElementBrowser and others),
the core should not pollute the deprecation log with it.

We just individually deprecate methods which are not used anymore.
Methods which are still used in the core are marked as @deprecated
(to visualize this in the IDE) but they won't write to the
deprecation log yet.

Resolves: #57209
Releases: 6.2
Change-Id: I41d7f6c8b7c3c4df77791ce3e6f3f69140d1935d
Reviewed-on: https://review.typo3.org/28674
Reviewed-by: Xavier Perseguers
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
typo3/sysext/core/Classes/Utility/File/BasicFileUtility.php
typo3/sysext/core/Classes/Utility/File/ExtendedFileUtility.php
typo3/sysext/filelist/Classes/FileList.php

index 5c93d1d..652acc9 100644 (file)
@@ -37,6 +37,11 @@ use TYPO3\CMS\Core\Utility\PathUtility;
  * using the concepts of web- and ftp-space. Please see the comment for the
  * init() function
  *
+ * Note: All methods in this class should not be used anymore since TYPO3 6.0.
+ * Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage
+ * (fetched via BE_USERS->getFileStorages()), as all functions should be
+ * found there (in a cleaner manner).
+ *
  * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 class BasicFileUtility {
@@ -140,11 +145,8 @@ class BasicFileUtility {
         * @param       array           Array with information about allowed and denied file extensions. Typically passed: $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']
         * @return      void
         * @see typo3/init.php, \TYPO3\CMS\Core\Authentication\BackendUserAuthentication::returnFilemounts()
-        * @todo Define visibility
-        * @deprecated All methods in this class should not be used anymore since TYPO3 6.0. Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage (fetched via BE_USERS->getFileStorages()), as all functions should be found there (in a cleaner manner).
         */
        public function init($mounts, $f_ext) {
-               GeneralUtility::logDeprecatedFunction('All methods in this class should not be used anymore since TYPO3 6.0. Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage (fetched via BE_USERS->getFileStorages()), as all functions should be found there (in a cleaner manner).');
                $this->f_ext['webspace']['allow'] = GeneralUtility::uniqueList(strtolower($f_ext['webspace']['allow']));
                $this->f_ext['webspace']['deny'] = GeneralUtility::uniqueList(strtolower($f_ext['webspace']['deny']));
                $this->f_ext['ftpspace']['allow'] = GeneralUtility::uniqueList(strtolower($f_ext['ftpspace']['allow']));
@@ -176,10 +178,10 @@ class BasicFileUtility {
         *
         * @param       string          Filepath to existing file. Should probably be absolute. Filefunctions are performed on this value.
         * @return      array           Information about the file in the filepath
-        * @todo Define visibility
+        * @deprecated since TYPO3 6.0. Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage (fetched via BE_USERS->getFileStorages())
         */
        public function getTotalFileInfo($wholePath) {
-               // @todo: deprecate this function, and replace its use in the storage/mounts
+               GeneralUtility::logDeprecatedFunction();
                $theuser = getmyuid();
                $info = GeneralUtility::split_fileref($wholePath);
                $info['tstamp'] = @filemtime($wholePath);
@@ -198,7 +200,8 @@ class BasicFileUtility {
         * @param       string          The extension to check, eg. "php" or "html" etc.
         * @param       string          Either "webspage" or "ftpspace" - points to a key in $this->f_ext
         * @return      boolean         TRUE if file extension is allowed.
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by checkIfAllowed()
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function is_allowed($iconkey, $type) {
                if (isset($this->f_ext[$type])) {
@@ -233,7 +236,8 @@ class BasicFileUtility {
         *
         * @param       string          Absolute path
         * @return      boolean
-        * @todo Define visibility
+        * @todo Deprecate: but still in use by through func_unzip in ExtendedFileUtility
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function checkIfFullAccess($theDest) {
                $type = $this->is_webpath($theDest) ? 'webspace' : 'ftpspace';
@@ -250,7 +254,8 @@ class BasicFileUtility {
         *
         * @param       string          Absolute path to check
         * @return      boolean
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by DataHandler
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function is_webpath($path) {
                if ($this->isInit) {
@@ -271,7 +276,8 @@ class BasicFileUtility {
         * @param       string          Absolute path for which to test
         * @param       string          Filename to check against TYPO3_CONF_VARS[BE][fileDenyPattern]
         * @return      boolean         TRUE if extension/filename is allowed
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by DataHandler
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function checkIfAllowed($ext, $theDest, $filename = '') {
                return GeneralUtility::verifyFilenameAgainstDenyPattern($filename) && $this->is_allowed($ext, ($this->is_webpath($theDest) ? 'webspace' : 'ftpspace'));
@@ -283,9 +289,11 @@ class BasicFileUtility {
         * @param       string          Filename, eg "somefile.html
         * @return      boolean
         * @todo Define visibility
+        * @deprecated since TYPO3 6.0. Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage (fetched via BE_USERS->getFileStorages())
         */
        public function checkFileNameLen($fileName) {
                // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
+               GeneralUtility::logDeprecatedFunction();
                return strlen($fileName) <= $this->maxInputNameLen;
        }
 
@@ -294,11 +302,12 @@ class BasicFileUtility {
         *
         * @param       string          Directory path to check
         * @return      string          Returns the cleaned up directory name if OK, otherwise FALSE.
-        * @todo Define visibility
+        * @todo Deprecate: but still in use by getUniqueName (used by DataHandler)
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function is_directory($theDir) {
                // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
-               if ($this->isPathValid($theDir)) {
+               if (GeneralUtility::validPathStr($theDir)) {
                        $theDir = PathUtility::getCanonicalPath($theDir);
                        if (@is_dir($theDir)) {
                                return $theDir;
@@ -313,10 +322,11 @@ class BasicFileUtility {
         * @param       string          Filepath to evaluate
         * @return      boolean         TRUE, if no '//', '..' or '\' is in the $theFile
         * @see         \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr()
-        * @todo Define visibility
+        * @deprecated since TYPO3 6.0. Use GeneralUtility::validPathStr() instead
         */
        public function isPathValid($theFile) {
                // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
+               GeneralUtility::logDeprecatedFunction();
                return GeneralUtility::validPathStr($theFile);
        }
 
@@ -330,7 +340,8 @@ class BasicFileUtility {
         * @param       boolean         If set the filename is returned with the path prepended without checking whether it already existed!
         * @return      string          The destination absolute filepath (not just the name!) of a unique filename/foldername in that path.
         * @see \TYPO3\CMS\Core\DataHandling\DataHandler::checkValue()
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by the Core (DataHandler...)
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function getUniqueName($theFile, $theDest, $dontCheckForUnique = 0) {
                // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
@@ -382,11 +393,11 @@ class BasicFileUtility {
         * @param       string          $thePath MUST HAVE a trailing '/' in order to match correctly with the mounts
         * @return      string          The key to the first mount found, otherwise nothing is returned.
         * @see init()
-        * @todo Define visibility
+        * @todo: deprecate this function, now done in the Storage object. But still in use by impexp and ElementBrowser
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function checkPathAgainstMounts($thePath) {
-               // @todo: deprecate this function, now done in the Storage object
-               if ($thePath && $this->isPathValid($thePath) && is_array($this->mounts)) {
+               if ($thePath && GeneralUtility::validPathStr($thePath) && is_array($this->mounts)) {
                        foreach ($this->mounts as $k => $val) {
                                if (GeneralUtility::isFirstPartOfStr($thePath, $val['path'])) {
                                        return $k;
@@ -399,7 +410,8 @@ class BasicFileUtility {
         * Find first web folder (relative to PATH_site.'fileadmin') in filemounts array
         *
         * @return      string          The key to the first mount inside PATH_site."fileadmin" found, otherwise nothing is returned.
-        * @todo Define visibility
+        * @todo: deprecate this function. But still in use by impexp
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function findFirstWebFolder() {
                // @todo: where and when to use this function?
@@ -418,10 +430,11 @@ class BasicFileUtility {
         *
         * @param       string          $thePath is a path which MUST be found within one of the internally set filemounts, $this->mounts
         * @return      string          The processed input path
-        * @todo Define visibility
+        * @deprecated since TYPO3 6.0. No replacement
         */
        public function blindPath($thePath) {
                // @todo: where and when to use this function?
+               GeneralUtility::logDeprecatedFunction();
                $k = $this->checkPathAgainstMounts($thePath);
                if ($k) {
                        $name = '';
@@ -436,10 +449,11 @@ class BasicFileUtility {
         * Finds the first $this->tempFN ('_temp_' usually) -folder in the internal array of filemounts, $this->mounts
         *
         * @return      string          Returns the path if found, otherwise nothing if error.
-        * @todo Define visibility
+        * @deprecated since TYPO3 6.0. No replacement
         */
        public function findTempFolder() {
                // @todo: where and when to use this function?
+               GeneralUtility::logDeprecatedFunction();
                if ($this->tempFN && is_array($this->mounts)) {
                        foreach ($this->mounts as $k => $val) {
                                $tDir = $val['path'] . $this->tempFN;
@@ -460,7 +474,7 @@ class BasicFileUtility {
         *
         * @param string $theDir Input string
         * @return string Output string
-        * @deprecated since 6.1, will be removed in two versions, use \TYPO3\CMS\Core\Utility\PathUtility::getCanonicalPath() instead
+        * @deprecated since TYPO3 6.1, will be removed in two versions, use \TYPO3\CMS\Core\Utility\PathUtility::getCanonicalPath() instead
         */
        public function cleanDirectoryName($theDir) {
                GeneralUtility::logDeprecatedFunction();
@@ -472,10 +486,10 @@ class BasicFileUtility {
         *
         * @param       string          Input value
         * @return      string          Returns the converted string
-        * @todo Define visibility
+        * @deprecated since TYPO3 6.0, no replacement
         */
        public function rmDoubleSlash($string) {
-               // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
+               GeneralUtility::logDeprecatedFunction();
                return str_replace('//', '/', $string);
        }
 
@@ -484,7 +498,8 @@ class BasicFileUtility {
         *
         * @param       string          Input string
         * @return      string          Output string with a slash in the end (if not already there)
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by is_webpath, used by DataHandler
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function slashPath($path) {
                // @todo: should go into the LocalDriver in a protected way (not important to the outside world)
@@ -502,7 +517,8 @@ class BasicFileUtility {
         * @param string $fileName Input string, typically the body of a filename
         * @param string $charset Charset of the a filename (defaults to current charset; depending on context)
         * @return string Output string with any characters not matching [.a-zA-Z0-9_-] is substituted by '_' and trailing dots removed
-        * @todo Define visibility
+        * @todo Deprecate, but still in use by the core
+        * @deprecated but still in use in the Core. Don't use in your extensions!
         */
        public function cleanFileName($fileName, $charset = '') {
                // Handle UTF-8 characters
index 875e5b4..dc11cdf 100644 (file)
@@ -341,8 +341,8 @@ class ExtendedFileUtility extends \TYPO3\CMS\Core\Utility\File\BasicFileUtility
         */
        public function findRecycler($theFile) {
                GeneralUtility::logDeprecatedFunction();
-               if ($this->isPathValid($theFile)) {
-                       $theFile = $this->cleanDirectoryName($theFile);
+               if (GeneralUtility::validPathStr($theFile)) {
+                       $theFile = \TYPO3\CMS\Core\Utility\PathUtility::getCanonicalPath($theFile);
                        $fI = GeneralUtility::split_fileref($theFile);
                        $c = 0;
                        // !!! Method has been put in the storage, can be saftely removed
@@ -352,7 +352,7 @@ class ExtendedFileUtility extends \TYPO3\CMS\Core\Utility\File\BasicFileUtility
                                        return $rDir;
                                }
                                $theFile = $fI['path'];
-                               $theFile = $this->cleanDirectoryName($theFile);
+                               $theFile = \TYPO3\CMS\Core\Utility\PathUtility::getCanonicalPath($theFile);
                                $fI = GeneralUtility::split_fileref($theFile);
                                $c++;
                        }
index c89334d..36efc82 100644 (file)
@@ -224,7 +224,6 @@ class FileList extends \TYPO3\CMS\Backend\RecordList\AbstractRecordList {
                if ($folderObject) {
                        $title = htmlspecialchars($folderObject->getIdentifier());
                        // Start compiling the HTML
-                       // @todo: how to fix this? $title = $GLOBALS['SOBE']->basicFF->blindPath($title);
                        // If this is some subFolder under the mount root....
                        if ($folderObject->getStorage()->isWithinFileMountBoundaries($folderObject)) {
                                // The icon with link