[!!!][TASK] Remove deprecated code from sysext core 84/33484/8
authorMarkus Klein <klein.t3@reelworx.at>
Thu, 23 Oct 2014 02:10:22 +0000 (04:10 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sun, 2 Nov 2014 21:04:33 +0000 (22:04 +0100)
This patch does not touch:
 * UpgradeWizard things => #62402
 * curl proxy options in DefaultConfiguration
 * BackendUserAuthentication disable_autocreate => #62415

Resolves: #62416
Releases: master
Change-Id: Id919431bb428f1e8922a6336f9a90a0b06b7a6a2
Reviewed-on: http://review.typo3.org/33484
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Frank Nägler <typo3@naegler.net>
Tested-by: Frank Nägler <typo3@naegler.net>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
33 files changed:
typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php
typo3/sysext/core/Classes/Category/CategoryRegistry.php
typo3/sysext/core/Classes/Compatibility/GlobalObjectDeprecationDecorator.php [deleted file]
typo3/sysext/core/Classes/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcher.php
typo3/sysext/core/Classes/Core/Bootstrap.php
typo3/sysext/core/Classes/Core/ClassLoader.php
typo3/sysext/core/Classes/DataHandling/DataHandler.php
typo3/sysext/core/Classes/Database/DatabaseConnection.php
typo3/sysext/core/Classes/FormProtection/FormProtectionFactory.php
typo3/sysext/core/Classes/FormProtection/InstallToolFormProtection.php
typo3/sysext/core/Classes/Html/RteHtmlParser.php
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/core/Classes/Localization/Locales.php
typo3/sysext/core/Classes/Package/PackageManager.php
typo3/sysext/core/Classes/Resource/File.php
typo3/sysext/core/Classes/Resource/FileRepository.php
typo3/sysext/core/Classes/Resource/ResourceStorage.php
typo3/sysext/core/Classes/Resource/Service/IndexerService.php [deleted file]
typo3/sysext/core/Classes/TypoScript/TemplateService.php
typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
typo3/sysext/core/Classes/Utility/File/BasicFileUtility.php
typo3/sysext/core/Classes/Utility/File/ExtendedFileUtility.php
typo3/sysext/core/Classes/Utility/GeneralUtility.php
typo3/sysext/core/Classes/Utility/PhpOptionsUtility.php
typo3/sysext/core/Classes/Utility/StringUtility.php
typo3/sysext/core/Configuration/DefaultConfiguration.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-62416-DeprecatedCodeRemovalInCoreSysext.rst [new file with mode: 0644]
typo3/sysext/core/Tests/Unit/FormProtection/InstallToolFormProtectionTest.php
typo3/sysext/core/Tests/Unit/Resource/Service/IndexerServiceTest.php [deleted file]
typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/impexp/Classes/Controller/ImportExportController.php
typo3/sysext/rtehtmlarea/Classes/SelectImage.php

index c77732d..a20a838 100644 (file)
@@ -266,15 +266,6 @@ abstract class AbstractUserAuthentication {
        public $id;
 
        /**
-        * Will contain the session_id gotten from cookie or GET method.
-        * This is used in statistics as a reliable cookie (one which is known to come from $_COOKIE)
-        * @var string
-        * @internal
-        * @deprecated since TYPO3 CMS 6.2, remove two versions later, use $this->isCookieSet() instead
-        */
-       public $cookieId;
-
-       /**
         * Indicates if an authentication was started but failed
         * @var bool
         */
@@ -1016,7 +1007,6 @@ abstract class AbstractUserAuthentication {
        /**
         * Returns whether this request is going to set a cookie
         * or a cookie was already found in the system
-        * replaces the old functionality for "$this->cookieId"
         *
         * @return bool Returns TRUE if a cookie is set
         */
index 02b9fa5..f742be6 100644 (file)
@@ -107,17 +107,6 @@ class CategoryRegistry implements \TYPO3\CMS\Core\SingletonInterface {
        }
 
        /**
-        * Gets the registered category configurations.
-        *
-        * @deprecated since 6.2 will be removed two versions later - Use ->isRegistered to get information about registered category fields.
-        * @return array
-        */
-       public function get() {
-               \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
-               return $this->registry;
-       }
-
-       /**
         * Gets all extension keys that registered a category configuration.
         *
         * @return array
@@ -212,13 +201,6 @@ class CategoryRegistry implements \TYPO3\CMS\Core\SingletonInterface {
        }
 
        /**
-        * @deprecated Since 6.2.2. This method was never intended to be called by extensions. Is is now deprecated and will be removed without substitution after two versions.
-        */
-       public function applyTca() {
-               \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
-       }
-
-       /**
         * Apply TCA to all registered tables
         *
         * @return void
diff --git a/typo3/sysext/core/Classes/Compatibility/GlobalObjectDeprecationDecorator.php b/typo3/sysext/core/Classes/Compatibility/GlobalObjectDeprecationDecorator.php
deleted file mode 100644 (file)
index 24aad00..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Compatibility;
-
-/**
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-
-/**
- * Class CacheManagerGlobal will be instanciated and
- * passed to $GLOBALS['typo3CacheManager'] to not break
- * extension code
- *
- */
-class GlobalObjectDeprecationDecorator {
-
-       /**
-        * @var string
-        */
-       protected $className;
-
-       /**
-        * @var string
-        */
-       protected $deprecationMessage;
-
-       /**
-        * @param string $className
-        * @param string $deprecationMessage
-        */
-       public function __construct($className, $deprecationMessage = NULL) {
-               $this->className = $className;
-               $this->deprecationMessage = $deprecationMessage ?: 'Usage of $GLOBALS[\'typo3CacheManager\'] and $GLOBALS[\'typo3CacheFactory\'] are deprecated since 6.2 will be removed in two versions. Use \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\'' . $this->className . '\') or dependency injection to access the singletons.';
-       }
-
-       /**
-        * Calls decorated object and issues a deprecation message
-        *
-        * @param string $methodName
-        * @param array $arguments
-        * @return mixed
-        * @deprecated
-        */
-       public function __call($methodName, $arguments) {
-               GeneralUtility::deprecationLog($this->deprecationMessage);
-               $decoratedObject = GeneralUtility::makeInstance($this->className);
-               return call_user_func_array(array($decoratedObject, $methodName), $arguments);
-       }
-}
\ No newline at end of file
index 254d122..2508b78 100644 (file)
@@ -196,7 +196,7 @@ abstract class AbstractConditionMatcher {
        protected function evaluateConditionCommon($key, $value) {
                if (GeneralUtility::inList('browser,version,system,useragent', strtolower($key))) {
                        GeneralUtility::deprecationLog(
-                               'Usage of client related conditions (browser, version, system, useragent) is deprecated since 6.3.'
+                               'Usage of client related conditions (browser, version, system, useragent) is deprecated since 7.0.'
                        );
                        $browserInfo = $this->getBrowserInfo(GeneralUtility::getIndpEnv('HTTP_USER_AGENT'));
                }
index 9729f4a..23fc697 100644 (file)
@@ -463,9 +463,6 @@ class Bootstrap {
         */
        public function initializeCachingFramework() {
                $this->setEarlyInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager', \TYPO3\CMS\Core\Cache\Cache::initializeCachingFramework());
-               // @deprecated since 6.2 will be removed in two versions
-               $GLOBALS['typo3CacheManager'] = new \TYPO3\CMS\Core\Compatibility\GlobalObjectDeprecationDecorator('TYPO3\\CMS\\Core\\Cache\\CacheManager');
-               $GLOBALS['typo3CacheFactory'] = new \TYPO3\CMS\Core\Compatibility\GlobalObjectDeprecationDecorator('TYPO3\\CMS\\Core\\Cache\\CacheFactory');
                return $this;
        }
 
index 868835d..6c127f0 100644 (file)
@@ -676,19 +676,6 @@ class ClassLoader {
        }
 
        /**
-        * Get alias for class name
-        *
-        * @param string $className
-        * @return mixed
-        * @deprecated since 6.2, will be removed 2 versions later - use getAliasesForClassName() instead
-        */
-       static public function getAliasForClassName($className) {
-               GeneralUtility::logDeprecatedFunction();
-               $aliases = static::$staticAliasMap->getAliasesForClassName($className);
-               return is_array($aliases) && isset($aliases[0]) ? $aliases[0] : NULL;
-       }
-
-       /**
         * Get an aliases for a class name
         *
         * @param string $className
index fc3e18d..82db741 100644 (file)
@@ -6832,29 +6832,6 @@ class DataHandler {
        }
 
        /**
-        * Clearing the cache based on a page being updated
-        * If the $table is 'pages' then cache is cleared for all pages on the same level (and subsequent?)
-        * Else just clear the cache for the parent page of the record.
-        *
-        * @param string $table Table name of record that was just updated.
-        * @param int $uid UID of updated / inserted record
-        * @return void
-        * @deprecated since 6.2 will be removed 2 versions later. Use ->clear_cacheCmd instead. Alternatively you can call ->registerPageCacheClearing from a hook to not immediatly clear the cache but register clearing after DataHandler operation finishes.
-        */
-       public function clear_cache($table, $uid) {
-               GeneralUtility::logDeprecatedFunction();
-               $originalValues = static::$recordsToClearCacheFor;
-               // Clear the queue temporarily
-               static::$recordsToClearCacheFor = array();
-               static::$recordsToClearCacheFor[$table] = array();
-               static::$recordsToClearCacheFor[$table][] = (int)$uid;
-
-               $this->processClearCacheQueue();
-               // Reset the queue to its original value again
-               static::$recordsToClearCacheFor = $originalValues;
-       }
-
-       /**
         * Do the actual clear cache
         * @return void
         */
@@ -7019,17 +6996,6 @@ class DataHandler {
                                        // Clear cache group "all" of caching framework caches
                                        $this->getCacheManager()->flushCachesInGroup('all');
                                        $GLOBALS['TYPO3_DB']->exec_TRUNCATEquery('cache_treelist');
-                                       // Clearing additional cache tables:
-                                       if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables'])) {
-                                               foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables'] as $tableName) {
-                                                       GeneralUtility::deprecationLog('Hook clearAllCache_additionalTables in DataHandler is deprecated in 6.2 and will be removed two versions later. Use the caching framework with database backend instead.');
-                                                       if (!preg_match('/[^[:alnum:]_]/', $tableName) && substr($tableName, -5) === 'cache') {
-                                                               $GLOBALS['TYPO3_DB']->exec_TRUNCATEquery($tableName);
-                                                       } else {
-                                                               throw new \RuntimeException('TYPO3 Fatal Error: Trying to flush table "' . $tableName . '" with "Clear All Cache"', 1270853922);
-                                                       }
-                                               }
-                                       }
                                }
 
                                break;
@@ -7178,23 +7144,13 @@ class DataHandler {
         * Internal (do not use outside Core!)
         *
         *****************************/
-       /**
-        * Clears page cache. Takes into account file cache.
-        *
-        * @return void
-        * @deprecated since TYPO3 CMS 6.2, remove two versions later. The DataHandler clearPageCache method is deprecated, use the cache manager directly.
-        */
-       public function internal_clearPageCache() {
-               GeneralUtility::logDeprecatedFunction();
-               $this->getCacheManager()->flushCachesInGroup('pages');
-       }
 
        /**
         * Proprocesses field array based on field type. Some fields must be adjusted
         * before going to database. This is done on the copy of the field array because
         * original values are used in remap action later.
         *
-        * @param stringb$table Table name
+        * @param string $table Table name
         * @param array $fieldArray     Field array to check
         * @return array Updated field array
         */
index 0e13e83..6ab5188 100644 (file)
@@ -1154,13 +1154,10 @@ class DatabaseConnection {
        /**
         * Open a (persistent) connection to a MySQL server
         *
-        * @param string $host Deprecated since 6.1, will be removed in two versions. Database host IP/domain[:port]
-        * @param string $username Deprecated since 6.1, will be removed in two versions. Username to connect with.
-        * @param string $password Deprecated since 6.1, will be removed in two versions. Password to connect with.
         * @return bool|void
         * @throws \RuntimeException
         */
-       public function sql_pconnect($host = NULL, $username = NULL, $password = NULL) {
+       public function sql_pconnect() {
                if ($this->isConnected) {
                        return $this->link;
                }
@@ -1172,10 +1169,6 @@ class DatabaseConnection {
                        );
                }
 
-               if ($host || $username || $password) {
-                       $this->handleDeprecatedConnectArguments($host, $username, $password);
-               }
-
                $host = $this->persistentDatabaseConnection
                        ? 'p:' . $this->databaseHost
                        : $this->databaseHost;
@@ -1218,7 +1211,7 @@ class DatabaseConnection {
                        $error_msg = $this->link->connect_error;
                        $this->link = NULL;
                        GeneralUtility::sysLog(
-                               'Could not connect to MySQL server ' . $host . ' with user ' . $username . ': ' . $error_msg,
+                               'Could not connect to MySQL server ' . $host . ' with user ' . $this->databaseUsername . ': ' . $error_msg,
                                'Core',
                                GeneralUtility::SYSLOG_SEVERITY_FATAL
                        );
@@ -1251,27 +1244,17 @@ class DatabaseConnection {
        /**
         * Select a SQL database
         *
-        * @param string $TYPO3_db Deprecated since 6.1, will be removed in two versions. Database to connect to.
         * @return bool Returns TRUE on success or FALSE on failure.
         */
-       public function sql_select_db($TYPO3_db = NULL) {
+       public function sql_select_db() {
                if (!$this->isConnected) {
                        $this->connectDB();
                }
 
-               if ($TYPO3_db) {
-                       GeneralUtility::deprecationLog(
-                               'DatabaseConnection->sql_select_db() should be called without arguments.' .
-                                       ' Use the setDatabaseName() before. Will be removed two versions after 6.1.'
-                       );
-               } else {
-                       $TYPO3_db = $this->databaseName;
-               }
-
-               $ret = $this->link->select_db($TYPO3_db);
+               $ret = $this->link->select_db($this->databaseName);
                if (!$ret) {
                        GeneralUtility::sysLog(
-                               'Could not select MySQL database ' . $TYPO3_db . ': ' . $this->sql_error(),
+                               'Could not select MySQL database ' . $this->databaseName . ': ' . $this->sql_error(),
                                'Core',
                                GeneralUtility::SYSLOG_SEVERITY_FATAL
                        );
@@ -1532,32 +1515,24 @@ class DatabaseConnection {
        /**
         * Connects to database for TYPO3 sites:
         *
-        * @param string $host Deprecated since 6.1, will be removed in two versions Database. host IP/domain[:port]
-        * @param string $username Deprecated since 6.1, will be removed in two versions. Username to connect with
-        * @param string $password Deprecated since 6.1, will be removed in two versions. Password to connect with
-        * @param string $db Deprecated since 6.1, will be removed in two versions. Database name to connect to
         * @throws \RuntimeException
         * @throws \UnexpectedValueException
         * @internal param string $user Username to connect with.
         * @return void
         */
-       public function connectDB($host = NULL, $username = NULL, $password = NULL, $db = NULL) {
+       public function connectDB() {
                // Early return if connected already
                if ($this->isConnected) {
                        return;
                }
 
-               if (!$this->databaseName && !$db) {
+               if (!$this->databaseName) {
                        throw new \RuntimeException(
                                'TYPO3 Fatal Error: No database selected!',
                                1270853882
                        );
                }
 
-               if ($host || $username || $password || $db) {
-                       $this->handleDeprecatedConnectArguments($host, $username, $password, $db);
-               }
-
                if ($this->sql_pconnect()) {
                        if (!$this->sql_select_db()) {
                                throw new \RuntimeException(
@@ -1717,39 +1692,6 @@ class DatabaseConnection {
                $this->link = $handle;
        }
 
-       /**
-        * Handle deprecated arguments for sql_pconnect() and connectDB()
-        *
-        * @param string|null $host Database host[:port]
-        * @param string|null $username Database user name
-        * @param string|null $password User password
-        * @param string|null $db Database
-        */
-       protected function handleDeprecatedConnectArguments($host = NULL, $username = NULL, $password = NULL, $db = NULL) {
-               GeneralUtility::deprecationLog(
-                       'DatabaseConnection->sql_pconnect() and DatabaseConnection->connectDB() should be ' .
-                       'called without arguments. Use the setters instead.'
-               );
-               if ($host) {
-                       if (strpos($host, ':') > 0) {
-                               list($databaseHost, $databasePort) = explode(':', $host);
-                               $this->setDatabaseHost($databaseHost);
-                               $this->setDatabasePort($databasePort);
-                       } else {
-                               $this->setDatabaseHost($host);
-                       }
-               }
-               if ($username) {
-                       $this->setDatabaseUsername($username);
-               }
-               if ($password) {
-                       $this->setDatabasePassword($password);
-               }
-               if ($db) {
-                       $this->setDatabaseName($db);
-               }
-       }
-
        /******************************
         *
         * Debugging
index a05b0b4..d2b5e20 100644 (file)
@@ -30,7 +30,6 @@ namespace TYPO3\CMS\Core\FormProtection;
  *
  * <pre>
  * $formProtection = \TYPO3\CMS\Core\FormProtection\FormProtectionFactory::get();
- * $formProtection->injectInstallTool($this);
  * </pre>
  *
  * @author Oliver Klee <typo3-coding@oliverklee.de>
index dcfd280..3a7a810 100644 (file)
@@ -61,49 +61,12 @@ namespace TYPO3\CMS\Core\FormProtection;
 class InstallToolFormProtection extends AbstractFormProtection {
 
        /**
-        * an instance of the install tool used for displaying messages
-        *
-        * @var \TYPO3\CMS\Install\Installer
-        */
-       protected $installTool = NULL;
-
-       /**
-        * Frees as much memory as possible.
-        */
-       public function __destruct() {
-               $this->installTool = NULL;
-               parent::__destruct();
-       }
-
-       /**
-        * Injects the current instance of the install tool.
-        *
-        * This instance will be used for displaying messages.
-        *
-        * @param object $installTool The current instance of the install tool
-        * @return void
-        * @deprecated since 6.2, will be removed two versions later. Message handling is done by install tool
-        */
-       public function injectInstallTool($installTool) {
-               \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
-               $this->installTool = $installTool;
-       }
-
-       /**
-        * Creates or displayes an error message telling the user that the submitted
+        * Creates or displays an error message telling the user that the submitted
         * form token is invalid.
         *
         * @return void
-        * @deprecated since 6.2, will be removed two versions later. Message handling is done by install tool
         */
        protected function createValidationErrorMessage() {
-               // @deprecated since 6.2, neither the install tool class nor the addErrorMessage() exist anymore
-               if (is_object($this->installTool)) {
-                       $this->installTool->addErrorMessage(
-                               'Validating the security token of this form has failed. '
-                               . 'Please reload the form and submit it again.'
-                       );
-               }
        }
 
        /**
index da95fab..d7015f5 100644 (file)
@@ -1500,17 +1500,6 @@ class RteHtmlParser extends \TYPO3\CMS\Core\Html\HtmlParser {
        }
 
        /**
-        * Return the storage folder of RTE image files.
-        * Default is $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir'] unless something else is configured in the types configuration for the RTE.
-        * @deprecated since 6.2, will be removed in two versions
-        * @return string
-        */
-       public function rteImageStorageDir() {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->rte_p['imgpath'] ? $this->rte_p['imgpath'] : $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir'];
-       }
-
-       /**
         * Remove all tables from incoming code
         * The function is trying to to this is some more or less respectfull way. The approach is to resolve each table cells content and implode it all by <br /> chars. Thus at least the content is preserved in some way.
         *
index dfd4167..f40fb32 100644 (file)
@@ -1857,10 +1857,9 @@ class GraphicalFunctions {
         * @param int $im GDlib Image Pointer
         * @param int $low The "low" value (close to 0)
         * @param int $high The "high" value (close to 255)
-        * @param bool $swap @deprecated since 6.2, unused and obsolete parameter, was used for older image magick versions
         * @return void
         */
-       public function inputLevels(&$im, $low, $high, $swap = '') {
+       public function inputLevels(&$im, $low, $high) {
                if ($low < $high) {
                        $low = MathUtility::forceIntegerInRange($low, 0, 255);
                        $high = MathUtility::forceIntegerInRange($high, 0, 255);
index 48a6008..e95d34b 100644 (file)
@@ -204,16 +204,6 @@ class Locales implements \TYPO3\CMS\Core\SingletonInterface {
        }
 
        /**
-        * Returns the locales as referenced by the TER and TYPO3 localization files.
-        *
-        * @return array
-        * @deprecated since TYPO3 4.6
-        */
-       public function getTerLocales() {
-               return $this->convertToTerLocales(array_keys($this->languages));
-       }
-
-       /**
         * Returns the dependencies of a given locale, if any.
         *
         * @param string $locale
@@ -234,31 +224,4 @@ class Locales implements \TYPO3\CMS\Core\SingletonInterface {
                return $dependencies;
        }
 
-       /**
-        * Returns the dependencies of a given locale using TER compatible locale codes.
-        *
-        * @param string $locale
-        * @return array
-        * @deprecated since TYPO3 4.6
-        */
-       public function getTerLocaleDependencies($locale) {
-               $terLocale = isset($this->isoMapping[$locale]) ? $this->isoMapping[$locale] : $locale;
-               return $this->convertToTerLocales($this->getLocaleDependencies($terLocale));
-       }
-
-       /**
-        * Converts an array of ISO locale codes into their TER equivalent.
-        *
-        * @param array $locales
-        * @return array
-        * @deprecated since TYPO3 4.6
-        */
-       protected function convertToTerLocales(array $locales) {
-               $terLocales = array();
-               foreach ($locales as $locale) {
-                       $terLocales[] = isset($this->isoReverseMapping[$locale]) ? $this->isoReverseMapping[$locale] : $locale;
-               }
-               return $terLocales;
-       }
-
 }
index dfd5f60..011350b 100644 (file)
@@ -132,12 +132,6 @@ class PackageManager extends \TYPO3\Flow\Package\PackageManager implements \TYPO
                        $this->initializeCompatibilityLoadedExtArray();
                }
 
-               //@deprecated since 6.2, don't use
-               if (!defined('REQUIRED_EXTENSIONS')) {
-                       // List of extensions required to run the core
-                       define('REQUIRED_EXTENSIONS', implode(',', $this->requiredPackageKeys));
-               }
-
                $cacheIdentifier = $this->getCacheIdentifier();
                if ($cacheIdentifier === NULL) {
                        // Create an artificial cache identifier if the package states file is not available yet
index cef9d5f..039762b 100644 (file)
@@ -48,11 +48,6 @@ class File extends AbstractFile {
        protected $updatedProperties = array();
 
        /**
-        * @var \TYPO3\CMS\Core\Resource\Service\IndexerService
-        */
-       protected $indexerService = NULL;
-
-       /**
         * Constructor for a file object. Should normally not be used directly, use
         * the corresponding factory methods instead.
         *
@@ -389,20 +384,7 @@ class File extends AbstractFile {
        }
 
        /**
-        * Internal function to retrieve the indexer service,
-        * if it does not exist, an instance will be created
-        *
-        * @return Index\Indexer
-        */
-       protected function getIndexerService() {
-               if ($this->indexerService === NULL) {
-                       $this->indexerService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\Indexer', $this->storage);
-               }
-               return $this->indexerService;
-       }
-
-       /**
-        * @param bool $indexingState
+        * @return void
         * @internal Only for usage in Indexer
         */
        public function setIndexingInProgess($indexingState) {
index fb6ec83..ee88ef8 100644 (file)
@@ -45,35 +45,6 @@ class FileRepository extends AbstractRepository {
        protected $table = 'sys_file';
 
        /**
-        * @var Service\IndexerService
-        */
-       protected $indexerService = NULL;
-
-       /**
-        * @param int $uid
-        * @return File
-        * @deprecated since TYPO3 6.2 CMS, will be removed 2 versions later
-        */
-       public function findByUid($uid) {
-               GeneralUtility::logDeprecatedFunction();
-               return ResourceFactory::getInstance()->getFileObject($uid);
-       }
-
-
-       /**
-        * Internal function to retrieve the indexer service,
-        * if it does not exist, an instance will be created
-        *
-        * @return Service\IndexerService
-        */
-       protected function getIndexerService() {
-               if ($this->indexerService === NULL) {
-                       $this->indexerService = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService');
-               }
-               return $this->indexerService;
-       }
-
-       /**
         * Creates an object managed by this repository.
         *
         * @param array $databaseRow
@@ -84,77 +55,6 @@ class FileRepository extends AbstractRepository {
        }
 
        /**
-        * Index a file object given as parameter
-        *
-        * @param File $fileObject
-        * @return array The indexed file data
-        * @deprecated since TYPO3 6.2, will be removed two versions later - indexing should be handled transparently, not only upon request
-        */
-       public function addToIndex(File $fileObject) {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->getIndexerService()->indexFile($fileObject, FALSE);
-       }
-
-       /**
-        * Checks the index status of a file and returns FALSE if the file is not
-        * indexed, the uid otherwise.
-        *
-        * @param File $fileObject
-        * @return bool|int
-        * @deprecated since TYPO3 6.2, will be removed two versions later - use FileIndexRepository::isIndexed
-        */
-       public function getFileIndexStatus(File $fileObject) {
-               GeneralUtility::logDeprecatedFunction();
-               $storageUid = $fileObject->getStorage()->getUid();
-               $identifier = $fileObject->getIdentifier();
-               $row = $this->getFileIndexRepository()->findOneByStorageUidAndIdentifier($storageUid, $identifier);
-               return is_array($row) ? $row['uid'] : FALSE;
-       }
-
-       /**
-        * Returns an index record of a file, or FALSE if the file is not indexed.
-        *
-        * @param File $fileObject
-        * @return bool|array
-        * @deprecated since TYPO3 6.2, will be removed two versions later - use FileIndexRepository instead
-        */
-       public function getFileIndexRecord(File $fileObject) {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->getFileIndexRepository()->findOneByFileObject($fileObject);
-       }
-
-       /**
-        * Returns the index-data of all files within that folder
-        *
-        * @param Folder $folder
-        * @return array
-        * @deprecated since 6.2 - will be removed 2 versions later
-        */
-       public function getFileIndexRecordsForFolder(Folder $folder) {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->getFileIndexRepository()->findByFolder($folder);
-       }
-
-       /**
-        * Returns all files with the corresponding SHA-1 hash. This is queried
-        * against the database, so only indexed files will be found
-        *
-        * @param string $hash A SHA1 hash of a file
-        * @return array
-        * @deprecated since TYPO3 6.2, will be removed two versions later - use FileIndexRepository::findByContentHash
-        */
-       public function findBySha1Hash($hash) {
-               GeneralUtility::logDeprecatedFunction();
-               $resultRows = $this->getFileIndexRepository()->findByContentHash($hash);
-
-               $objects = array();
-               foreach ($resultRows as $row) {
-                       $objects[] = $this->createDomainObject($row);
-               }
-               return $objects;
-       }
-
-       /**
         * Find FileReference objects by relation to other records
         *
         * @param int $tableName Table name of the related record
@@ -234,31 +134,6 @@ class FileRepository extends AbstractRepository {
        }
 
        /**
-        * Updates an existing file object in the database
-        *
-        * @param AbstractFile $modifiedObject
-        * @return void
-        * @deprecated since TYPO3 6.2 LTS, will be removed two versions later - use FileIndexRepository::update
-        */
-       public function update($modifiedObject) {
-               GeneralUtility::logDeprecatedFunction();
-               if ($modifiedObject instanceof File) {
-                       $this->getFileIndexRepository()->update($modifiedObject);
-               }
-       }
-
-       /**
-        * Creates a FileReference object
-        *
-        * @param array $databaseRow
-        * @return FileReference
-        * @deprecated Use $this->factory->getFileReferenceObject() directly
-        */
-       protected function createFileReferenceObject(array $databaseRow) {
-               return $this->factory->getFileReferenceObject($databaseRow['uid'], $databaseRow);
-       }
-
-       /**
         * Return a file index repository
         *
         * @return FileIndexRepository
index 1b96abe..feb591b 100644 (file)
@@ -222,34 +222,6 @@ class ResourceStorage implements ResourceStorageInterface {
        }
 
        /**
-        * Deprecated function, don't use it. Will be removed in some later revision.
-        *
-        * @param string $identifier
-        *
-        * @throws \BadMethodCallException
-        */
-       public function getFolderByIdentifier($identifier) {
-               throw new \BadMethodCallException(
-                       'Function TYPO3\\CMS\\Core\\Resource\\ResourceStorage::getFolderByIdentifier() has been renamed to just getFolder(). Please fix the method call.',
-                       1333754514
-               );
-       }
-
-       /**
-        * Deprecated function, don't use it. Will be removed in some later revision.
-        *
-        * @param string $identifier
-        *
-        * @throws \BadMethodCallException
-        */
-       public function getFileByIdentifier($identifier) {
-               throw new \BadMethodCallException(
-                       'Function TYPO3\\CMS\\Core\\Resource\\ResourceStorage::getFileByIdentifier() has been renamed to just getFileInfoByIdentifier(). ' . 'Please fix the method call.',
-                       1333754533
-               );
-       }
-
-       /**
         * Returns the name of this storage.
         *
         * @return string
@@ -1326,24 +1298,6 @@ class ResourceStorage implements ResourceStorageInterface {
        }
 
        /**
-        * Returns a list of files in a given path, filtered by some custom filter methods.
-        *
-        * @see getUnfilteredFileList(), getFileListWithDefaultFilters()
-        * @param string $path The path to list
-        * @param int $start The position to start the listing; if not set or 0, start from the beginning
-        * @param int $numberOfItems The number of items to list; if not set, return all items
-        * @param bool $useFilters If FALSE, the list is returned without any filtering; otherwise, the filters defined for this storage are used.
-        * @param bool $loadIndexRecords If set to TRUE, the index records for all files are loaded from the database. This can greatly improve performance of this method, especially with a lot of files.
-        * @param bool $recursive
-        * @return array Information about the files found.
-        * @deprecated since 6.2, will be removed two versions later
-        */
-       public function getFileList($path, $start = 0, $numberOfItems = 0, $useFilters = TRUE, $loadIndexRecords = TRUE, $recursive = FALSE) {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->getFilesInFolder($this->getFolder($path), $start, $numberOfItems, $useFilters, $recursive);
-       }
-
-       /**
         * @param Folder $folder
         * @param int $start
         * @param int $maxNumberOfItems
@@ -1923,23 +1877,6 @@ class ResourceStorage implements ResourceStorageInterface {
        }
 
        /**
-        * Returns a list of folders in a given path.
-        *
-        * @param string $path The path to list
-        * @param int $start The position to start the listing; if not set or 0, start from the beginning
-        * @param int $numberOfItems The number of items to list; if not set, return all items
-        * @param bool $useFilters If FALSE, the list is returned without any filtering; otherwise, the filters defined for this storage are used.
-        * @return array Information about the folders found.
-        * @deprecated since TYPO3 6.2, will be removed to versions later
-        */
-       public function getFolderList($path, $start = 0, $numberOfItems = 0, $useFilters = TRUE) {
-               GeneralUtility::logDeprecatedFunction();
-               // Permissions are checked in $this->fetchFolderListFromDriver()
-               $filters = $useFilters === TRUE ? $this->fileAndFolderNameFilters : array();
-               return $this->fetchFolderListFromDriver($path, $start, $numberOfItems, $filters);
-       }
-
-       /**
         * @param Folder $folder
         * @param int $start
         * @param int $maxNumberOfItems
@@ -1964,33 +1901,6 @@ class ResourceStorage implements ResourceStorageInterface {
        }
 
        /**
-        * @param $path
-        * @param int $start
-        * @param int $numberOfItems
-        * @param array $folderFilterCallbacks
-        * @param bool $recursive
-        * @return array
-        * @deprecated since 6.2, will be removed 2 versions later
-        */
-       public function fetchFolderListFromDriver($path, $start = 0, $numberOfItems = 0, array $folderFilterCallbacks = array(), $recursive = FALSE) {
-               GeneralUtility::logDeprecatedFunction();
-               // This also checks for access to that path and throws exceptions accordingly
-               $parentFolder = $this->getFolder($path);
-               if ($parentFolder === NULL) {
-                       return array();
-               }
-               $folders = $this->getFoldersInFolder($parentFolder, $start, $numberOfItems, count($folderFilterCallbacks) > 0, $recursive);
-               $folderInfo = array();
-               foreach ($folders as $folder) {
-                       $folderInfo[$folder->getIdentifier()] = array(
-                               'name' => $folder->getName(),
-                               'identifier' => $folder->getIdentifier()
-                       );
-               }
-               return $folderInfo;
-       }
-
-       /**
         * Returns TRUE if the specified folder exists.
         *
         * @param string $identifier
diff --git a/typo3/sysext/core/Classes/Resource/Service/IndexerService.php b/typo3/sysext/core/Classes/Resource/Service/IndexerService.php
deleted file mode 100644 (file)
index 291df72..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Resource\Service;
-
-/**
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-use TYPO3\CMS\Core\Resource\File;
-use TYPO3\CMS\Core\Resource\Index\FileIndexRepository;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-
-/**
- * Indexer for the virtual file system
- * should only be accessed through the FileRepository for now
- *
- * @author Andreas Wolf <andreas.wolf@ikt-werk.de>
- * @deprecated since TYPO3 CMS 6.2 LTS - will be removed 2 versions later
- */
-class IndexerService implements \TYPO3\CMS\Core\SingletonInterface {
-
-       /**
-        * @var \TYPO3\CMS\Core\Resource\FileRepository
-        */
-       protected $repository;
-
-       /**
-        * empty constructor, nothing to do here yet
-        */
-       public function __construct() {
-
-       }
-
-       /**
-        * Internal function to retrieve the file repository,
-        * if it does not exist, an instance will be created
-        *
-        * @return \TYPO3\CMS\Core\Resource\FileRepository
-        */
-       protected function getRepository() {
-               if ($this->repository === NULL) {
-                       $this->repository = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository');
-               }
-               return $this->repository;
-       }
-
-       /**
-        * @return FileIndexRepository
-        */
-       protected function getFileIndexRepository() {
-               return GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\FileIndexRepository');
-       }
-
-
-       /**
-        * Getter function for the fileFactory
-        *
-        * @return \TYPO3\CMS\Core\Resource\ResourceFactory
-        */
-       public function getFactory() {
-               return GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory');
-       }
-
-       /**
-        * Creates or updates a file index entry from a file object.
-        *
-        * @param File $fileObject
-        * @param bool $updateObject Set this to FALSE to get the indexed values. You have to take care of updating the object yourself then!
-        * @return File|array the indexed $fileObject or an array of indexed properties.
-        * @throws \RuntimeException
-        */
-       public function indexFile(File $fileObject, $updateObject = TRUE) {
-               $fileObject->setIndexingInProgess(TRUE);
-               // Get the file information of this object
-               $fileInfo = $this->gatherFileInformation($fileObject);
-               // Signal slot BEFORE the file was indexed
-               $this->emitPreFileIndexSignal($fileObject, $fileInfo);
-
-               // If the file is already indexed, then the file information will
-               // be updated on the existing record
-               if ($fileObject->isIndexed()) {
-                       $fileInfo['missing'] = 0;
-                       $fileObject->updateProperties($fileInfo);
-                       $this->getFileIndexRepository()->update($fileObject);
-               } else {
-                       // Check if a file has been moved outside of FAL -- we have some
-                       // orphaned index record in this case we could update
-                       $resultRows = $this->getFileIndexRepository()->findByContentHash($fileInfo['sha1']);
-                       $otherFiles = array();
-                       foreach ($resultRows as $row) {
-                               $otherFiles[] = $this->getFactory()->getFileObject($row['uid'], $row);
-                       }
-
-                       $movedFile = FALSE;
-                       /** @var $otherFile File */
-                       foreach ($otherFiles as $otherFile) {
-                               if (!$otherFile->exists()) {
-                                       // @todo: create a log entry
-                                       $movedFile = TRUE;
-                                       $fileInfo['missing'] = 0;
-                                       $otherFile->updateProperties($fileInfo);
-                                       $this->getFileIndexRepository()->update($otherFile);
-                                       $fileInfo['uid'] = $otherFile->getUid();
-                                       $fileObject = $otherFile;
-                                       // Skip the rest of the files here as we might have more files that are missing, but we can only
-                                       // have one entry. The optimal solution would be to merge these records then, but this requires
-                                       // some more advanced logic that we currently have not implemented.
-                                       break;
-                               }
-                       }
-                       // File was not moved, so it is a new index record
-                       if ($movedFile === FALSE) {
-                               // Crdate and tstamp should not be present when updating
-                               // the file object, as they only relate to the index record
-                               $additionalInfo = array(
-                                       'crdate' => $GLOBALS['EXEC_TIME'],
-                                       'tstamp' => $GLOBALS['EXEC_TIME']
-                               );
-                               if (isset($GLOBALS['BE_USER']->user['uid'])) {
-                                       $additionalInfo['cruser_id'] = (int)$GLOBALS['BE_USER']->user['uid'];
-                               }
-                               $indexRecord = array_merge($fileInfo, $additionalInfo);
-
-                               $fileObject->updateProperties($indexRecord);
-                               $this->getFileIndexRepository()->add($fileObject);
-                       }
-               }
-               // Check for an error during the execution and throw an exception
-               $error = $GLOBALS['TYPO3_DB']->sql_error();
-               if ($error) {
-                       throw new \RuntimeException('Error during file indexing: "' . $error . '"', 1314455642);
-               }
-               if ($fileInfo['type'] == $fileObject::FILETYPE_IMAGE) {
-                       $rawFileLocation = $fileObject->getForLocalProcessing(FALSE);
-                       $metaData = array();
-                       list($metaData['width'], $metaData['height']) = getimagesize($rawFileLocation);
-                       $this->getMetaDataRepository()->update($fileObject->getUid(), $metaData);
-               }
-               // Signal slot AFTER the file was indexed
-               $this->emitPostFileIndexSignal($fileObject, $fileInfo);
-               $fileObject->setIndexingInProgess(FALSE);
-               if ($updateObject) {
-                       return $fileObject;
-               } else {
-                       return $fileInfo;
-               }
-       }
-
-       /**
-        * Indexes an array of file objects
-        * currently this is done in a simple way, however could be changed to be more performant
-        *
-        * @param File[] $fileObjects
-        * @return void
-        */
-       public function indexFiles(array $fileObjects) {
-               // emit signal
-               $this->emitPreMultipleFilesIndexSignal($fileObjects);
-               foreach ($fileObjects as $fileObject) {
-                       $this->indexFile($fileObject);
-               }
-               // emit signal
-               $this->emitPostMultipleFilesIndexSignal($fileObjects);
-       }
-
-       /**
-        * Indexes all files in a given storage folder.
-        * currently this is done in a simple way, however could be changed to be more performant
-        *
-        * @param \TYPO3\CMS\Core\Resource\Folder $folder
-        * @return int The number of indexed files.
-        */
-       public function indexFilesInFolder(\TYPO3\CMS\Core\Resource\Folder $folder) {
-               $numberOfIndexedFiles = 0;
-               $fileIdentifiers = array();
-
-               // Index all files in this folder
-               $fileObjects = $folder->getFiles();
-
-               // emit signal
-               $this->emitPreMultipleFilesIndexSignal($fileObjects);
-               foreach ($fileObjects as $fileObject) {
-                       $this->indexFile($fileObject);
-                       $fileIdentifiers[] = $fileObject->getIdentifier();
-                       $numberOfIndexedFiles++;
-               }
-
-               // check for deleted files (file not found during indexing are marked as missing)
-               $fileIndexRecords = $this->getFileIndexRepository()->findByFolder($folder);
-               foreach ($fileIndexRecords as $file) {
-                       if (!in_array($file['identifier'], $fileIdentifiers)) {
-                               /** @var $fileObject File */
-                               $fileObject = $this->getRepository()->findByIdentifier($file['uid']);
-                               $fileObject->setMissing(TRUE);
-                               $this->getFileIndexRepository()->update($fileObject);
-                       }
-               }
-
-               // emit signal
-               $this->emitPostMultipleFilesIndexSignal($fileObjects);
-
-               // cleanup to prevent to much memory use on big folders
-               unset($fileObjects);
-               unset($fileIdentifiers);
-
-               // Call this function recursively for each subfolder
-               $subFolders = $folder->getSubfolders();
-               foreach ($subFolders as $subFolder) {
-                       $numberOfIndexedFiles += $this->indexFilesInFolder($subFolder);
-               }
-               return $numberOfIndexedFiles;
-       }
-
-       /**
-        * Fetches the information for a sys_file record
-        * based on a single file
-        * this function shouldn't be used, if someone needs to fetch the file information
-        * from a file object, should be done by getProperties etc
-        *
-        * @param File $file the file to fetch the information from
-        * @return array the file information as an array
-        */
-       protected function gatherFileInformation(File $file) {
-               $fileInfo = new \ArrayObject(array());
-               $gatherDefaultInformation = new \stdClass();
-               $gatherDefaultInformation->getDefaultFileInfo = 1;
-               // signal before the files are modified
-               $this->emitPreGatherFileInformationSignal($file, $fileInfo, $gatherDefaultInformation);
-               // the check helps you to disable the regular file fetching,
-               // so a signal could actually remotely access the service
-               if ($gatherDefaultInformation->getDefaultFileInfo) {
-                       $storage = $file->getStorage();
-                       // TODO: See if we can't just return info, as it contains most of the
-                       // stuff we put together in array form again later here.
-                       $info = $storage->getFileInfo($file);
-                       $defaultFileInfo = array(
-                               'creation_date' => $info['ctime'],
-                               'modification_date' => $info['mtime'],
-                               'size' => $info['size'],
-                               'identifier' => $file->getIdentifier(),
-                               'identifier_hash' => $storage->hashFileIdentifier($file->getIdentifier()),
-                               'folder_hash' => $storage->hashFileIdentifier($storage->getFolderIdentifierFromFileIdentifier($file->getIdentifier())),
-                               'storage' => $storage->getUid(),
-                               'name' => $file->getName(),
-                               'sha1' => $storage->hashFile($file, 'sha1'),
-                               'type' => $file->getType(),
-                               'mime_type' => $file->getMimeType(),
-                               'extension' => $file->getExtension()
-                       );
-                       $fileInfo = array_merge($defaultFileInfo, $fileInfo->getArrayCopy());
-                       $fileInfo = new \ArrayObject($fileInfo);
-               }
-               // signal after the file information is fetched
-               $this->emitPostGatherFileInformationSignal($file, $fileInfo, $gatherDefaultInformation);
-               return $fileInfo->getArrayCopy();
-       }
-
-       /**
-        * Signal that is called before the file information is fetched
-        * helpful if somebody wants to preprocess the record information
-        *
-        * @param File $fileObject
-        * @param array $fileInfo
-        * @param bool $gatherDefaultInformation
-        * @signal
-        */
-       protected function emitPreGatherFileInformationSignal(File $fileObject, $fileInfo, $gatherDefaultInformation) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'preGatherFileInformation', array($fileObject, $fileInfo, $gatherDefaultInformation));
-       }
-
-       /**
-        * Signal that is called after a file object was indexed
-        *
-        * @param File $fileObject
-        * @param array $fileInfo
-        * @param bool $hasGatheredDefaultInformation
-        * @signal
-        */
-       protected function emitPostGatherFileInformationSignal(File $fileObject, $fileInfo, $hasGatheredDefaultInformation) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'postGatherFileInformation', array($fileObject, $fileInfo, $hasGatheredDefaultInformation));
-       }
-
-       /**
-        * Signal that is called before a bunch of file objects are indexed
-        *
-        * @param array $fileObject
-        * @signal
-        */
-       protected function emitPreMultipleFilesIndexSignal(array $fileObjectsToIndex) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'preMultipleFileIndex', array($fileObjectsToIndex));
-       }
-
-       /**
-        * Signal that is called after multiple file objects were indexed
-        *
-        * @param array $fileObjectsToIndex
-        * @signal
-        */
-       protected function emitPostMultipleFilesIndexSignal(array $fileObjectsToIndex) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'postMultipleFileIndex', array($fileObjectsToIndex));
-       }
-
-       /**
-        * Signal that is called before a file object was indexed
-        *
-        * @param File $fileObject
-        * @param array $fileInfo
-        * @signal
-        */
-       protected function emitPreFileIndexSignal(File $fileObject, $fileInfo) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'preFileIndex', array($fileObject, $fileInfo));
-       }
-
-       /**
-        * Signal that is called after a file object was indexed
-        *
-        * @param File $fileObject
-        * @param array $fileInfo
-        * @signal
-        */
-       protected function emitPostFileIndexSignal(File $fileObject, $fileInfo) {
-               $this->getSignalSlotDispatcher()->dispatch('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', 'postFileIndex', array($fileObject, $fileInfo));
-       }
-
-       /**
-        * Get the SignalSlot dispatcher
-        *
-        * @return \TYPO3\CMS\Extbase\SignalSlot\Dispatcher
-        */
-       protected function getSignalSlotDispatcher() {
-               return $this->getObjectManager()->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
-       }
-
-       /**
-        * Get the ObjectManager
-        *
-        * @return \TYPO3\CMS\Extbase\Object\ObjectManager
-        */
-       protected function getObjectManager() {
-               return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
-       }
-
-       /**
-        * @return \TYPO3\CMS\Core\Resource\Index\MetaDataRepository
-        */
-       protected function getMetaDataRepository() {
-               return GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\MetaDataRepository');
-       }
-
-}
index 82f1c09..f14b170 100644 (file)
@@ -1210,7 +1210,7 @@ class TemplateService {
         * @param string $content The content to wrap
         * @param string $wrap The wrap value, eg. "<strong> | </strong>
         * @return string Wrapped input string
-        * @deprecated since TYPO3 CMS 6.3, remove later - use \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::wrap() instead
+        * @deprecated since TYPO3 CMS 7.0 - use \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::wrap() instead
         * @see \TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject, \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::wrap()
         */
        public function wrap($content, $wrap) {
index 1f03ade..045570e 100644 (file)
@@ -661,35 +661,6 @@ class ExtensionManagementUtility {
        }
 
        /**
-        * Generates search needles that are used for inserting fields/items into an existing list.
-        *
-        * @see executePositionedStringInsertion
-        * @param string $item The name of the field/item
-        * @param array $itemDetails Additional details of the field/item like e.g. palette information
-        * @return array The needled to be used for inserting content before or after existing fields/items
-        * @deprecated since 6.2, will be removed two versions later. This method was only used by executePositionedStringInsertion().
-        */
-       static protected function getInsertionNeedles($item, array $itemDetails) {
-               if (strpos($item, '--') !== FALSE) {
-                       // If $item is a separator (--div--) or palette (--palette--) then it may have been appended by a unique number. This must be stripped away here.
-                       $item = str_replace(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), '', $item);
-               }
-               $needles = array(
-                       'before' => array($item, 'before:' . $item),
-                       'after' => array('after:' . $item),
-                       'replace' => array('replace:' . $item)
-               );
-               if ($itemDetails['palette']) {
-                       $palette = $item . ';;' . $itemDetails['palette'];
-                       $needles['before'][] = $palette;
-                       $needles['before'][] = 'before:' . $palette;
-                       $needles['after'][] = 'after:' . $palette;
-                       $needles['replace'][] = 'replace:' . $palette;
-               }
-               return $needles;
-       }
-
-       /**
         * Generates an array of fields/items with additional information such as e.g. the name of the palette.
         *
         * @param string $itemList List of fields/items to be splitted up
@@ -805,8 +776,8 @@ class ExtensionManagementUtility {
         * and it replaces old conf.php.
         *
         * The original function for is called
-        * Tx_Extbase_Utility_Extension::configureModule, the refered function can
-        * be deprecated now
+        * typo3/sysext/extbase/Classes/Utility/ExtensionUtility.php::configureModule
+        * the referred function can be deprecated now
         *
         * @param string $moduleSignature The module name
         * @param string $modulePath Absolute path to module (not used by Extbase currently)
@@ -952,18 +923,10 @@ class ExtensionManagementUtility {
         * @return void
         * @see \TYPO3\CMS\Backend\Module\BaseScriptClass::mergeExternalItems()
         */
-       static public function insertModuleFunction($modname, $className, $classPath, $title, $MM_key = 'function', $WS = '') {
-               if (!empty($classPath)) {
-                       GeneralUtility::deprecationLog(
-                               sprintf('insertModuleFunction(%s, %s, ...): Use auto-loading for the class and pass NULL as $classPath since 6.2.',
-                                       $modname,
-                                       $className
-                               )
-                       );
-               }
+       static public function insertModuleFunction($modname, $className, $classPath = NULL, $title, $MM_key = 'function', $WS = '') {
                $GLOBALS['TBE_MODULES_EXT'][$modname]['MOD_MENU'][$MM_key][$className] = array(
                        'name' => $className,
-                       'path' => $classPath,
+                       'path' => NULL,
                        'title' => $title,
                        'ws' => $WS
                );
@@ -1884,17 +1847,6 @@ tt_content.' . $key . $prefix . ' {
        }
 
        /**
-        * Returns REQUIRED_EXTENSIONS constant set by package manager as array.
-        *
-        * @return array List of required extensions
-        * @deprecated since 6,2, will be removed two versions later.
-        */
-       static public function getRequiredExtensionListArray() {
-               GeneralUtility::logDeprecatedFunction();
-               return GeneralUtility::trimExplode(',', REQUIRED_EXTENSIONS);
-       }
-
-       /**
         * Loads given extension
         *
         * Warning: This method only works if the ugrade wizard to transform
@@ -1929,20 +1881,6 @@ tt_content.' . $key . $prefix . ' {
        }
 
        /**
-        * Writes extension list and clear cache files.
-        *
-        * @TODO: This method should be protected, but with current em it is hard to do so,
-        * @TODO: Find out if we may remove this already
-        * @param array $newExtensionList Extension array to load, loader order is kept
-        * @return void
-        * @internal
-        * @deprecated since 6.2, will be removed two versions later
-        */
-       static public function writeNewExtensionList(array $newExtensionList) {
-               GeneralUtility::logDeprecatedFunction();
-       }
-
-       /**
         * Makes a table categorizable by adding value into the category registry.
         * FOR USE IN ext_localconf.php FILES or files in Configuration/TCA/Overrides/*.php Use the latter to benefit from TCA caching!
         *
index 0c6119e..e4147b7 100644 (file)
@@ -146,42 +146,6 @@ class BasicFileUtility {
        }
 
        /**
-        * Returns an array with a whole lot of fileinformation.
-        * Information includes:
-        * - path                       : path part of give file
-        * - file                       : filename
-        * - filebody           : filename without extension
-        * - fileext            : lowercase extension
-        * - realFileext        : extension
-        * - tstamp                     : timestamp of modification
-        * - size                       : file size
-        * - type                       : file type (block/char/dir/fifo/file/link)
-        * - owner                      : user ID of owner of file
-        * - perms                      : numerical representation of file permissions
-        * - writable           : is file writeable by web user (FALSE = yes; TRUE = no) *)
-        * - readable           : is file readable by web user (FALSE = yes; TRUE = no) *)
-        *
-        * ) logic is reversed because of handling by functions in TYPO3\CMS\Filelist\FileList
-        *
-        * @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
-        * @deprecated since TYPO3 6.0. Please use corresponding TYPO3\\CMS\\Core\\Resource\\ResourceStorage (fetched via BE_USERS->getFileStorages())
-        */
-       public function getTotalFileInfo($wholePath) {
-               GeneralUtility::logDeprecatedFunction();
-               $theuser = getmyuid();
-               $info = GeneralUtility::split_fileref($wholePath);
-               $info['tstamp'] = @filemtime($wholePath);
-               $info['size'] = @filesize($wholePath);
-               $info['type'] = @filetype($wholePath);
-               $info['owner'] = @fileowner($wholePath);
-               $info['perms'] = @fileperms($wholePath);
-               $info['writable'] = !@is_writable($wholePath);
-               $info['readable'] = !@is_readable($wholePath);
-               return $info;
-       }
-
-       /**
         * Checks if a $iconkey (fileextension) is allowed according to $this->f_ext.
         *
         * @param string The extension to check, eg. "php" or "html" etc.
@@ -271,19 +235,6 @@ class BasicFileUtility {
        }
 
        /**
-        * Returns TRUE if the input filename string is shorter than $this->maxInputNameLen.
-        *
-        * @param string Filename, eg "somefile.html
-        * @return bool
-        * @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;
-       }
-
-       /**
         * Cleans $theDir for slashes in the end of the string and returns the new path, if it exists on the server.
         *
         * @param string Directory path to check
@@ -303,20 +254,6 @@ class BasicFileUtility {
        }
 
        /**
-        * Wrapper for \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr()
-        *
-        * @param string Filepath to evaluate
-        * @return bool TRUE, if no '//', '..' or '\' is in the $theFile
-        * @see \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr()
-        * @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);
-       }
-
-       /**
         * Returns the destination path/filename of a unique filename/foldername in that path.
         * If $theFile exists in $theDest (directory) the file have numbers appended up to $this->maxNumber. Hereafter a unique string will be appended.
         * This function is used by fx. TCEmain when files are attached to records and needs to be uniquely named in the uploads/* folders
@@ -410,76 +347,12 @@ class BasicFileUtility {
                }
        }
 
-       /**
-        * Removes filemount part of a path, thus blinding the position.
-        * Takes a path, $thePath, and removes the part of the path which equals the filemount.
-        *
-        * @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
-        * @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 = '';
-                       $name .= '[' . $this->mounts[$k]['name'] . ']: ';
-                       $name .= substr($thePath, strlen($this->mounts[$k]['path']));
-                       return $name;
-               }
-       }
-
-       /**
-        * Find temporary folder
-        * 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.
-        * @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;
-                               if (@is_dir($tDir)) {
-                                       return $tDir;
-                               }
-                       }
-               }
-       }
-
        /*********************
         *
         * Cleaning functions
         *
         *********************/
        /**
-        * Removes all dots, slashes and spaces after a path
-        *
-        * @param string $theDir Input string
-        * @return string Output string
-        * @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();
-               return PathUtility::getCanonicalPath($theDir);
-       }
-
-       /**
-        * Converts any double slashes (//) to a single slash (/)
-        *
-        * @param string Input value
-        * @return string Returns the converted string
-        * @deprecated since TYPO3 6.0, no replacement
-        */
-       public function rmDoubleSlash($string) {
-               GeneralUtility::logDeprecatedFunction();
-               return str_replace('//', '/', $string);
-       }
-
-       /**
         * Returns a string which has a slash '/' appended if it doesn't already have that slash
         *
         * @param string Input string
index 0162ed2..169e65b 100644 (file)
@@ -155,18 +155,6 @@ class ExtendedFileUtility extends BasicFileUtility {
        }
 
        /**
-        * Sets up permission to perform file/directory operations.
-        * See below or the be_user-table for the significance of the various bits in $setup.
-        *
-        * @return void
-        * @deprecated since 6.2 will be removed two versions later. Use ExtendedFileUtility::setActionPermissions() instead
-        */
-       public function init_actionPerms() {
-               GeneralUtility::logDeprecatedFunction();
-               $this->setActionPermissions();
-       }
-
-       /**
         * Sets the file action permissions.
         * If no argument is given, permissions of the currently logged in backend user are taken into account.
         *
@@ -276,18 +264,6 @@ class ExtendedFileUtility extends BasicFileUtility {
        }
 
        /**
-        * Adds log error messages from the operations of this script instance to the FlashMessageQueue
-        *
-        * @param string $redirect Redirect URL (for creating link in message)
-        * @return void
-        * @deprecated since TYPO3 6.1, will be removed two versions later, use ->pushErrorMessagesToFlashMessageQueue directly instead
-        */
-       public function printLogErrorMessages($redirect = '') {
-               GeneralUtility::logDeprecatedFunction();
-               $this->pushErrorMessagesToFlashMessageQueue();
-       }
-
-       /**
         * Adds all log error messages from the operations of this script instance to the FlashMessageQueue
         *
         * @return void
@@ -315,37 +291,6 @@ class ExtendedFileUtility extends BasicFileUtility {
        }
 
        /**
-        * Goes back in the path and checks in each directory if a folder named $this->recyclerFN (usually '_recycler_') is present.
-        * If a folder in the tree happens to be a _recycler_-folder (which means that we're deleting something inside a _recycler_-folder) this is ignored
-        *
-        * @param string $theFile Takes a valid Path ($theFile)
-        * @return string Returns the path (without trailing slash) of the closest recycle-folder if found. Else FALSE.
-        * @todo To be put in Storage with a better concept
-        * @deprecated since TYPO3 6.0, use \TYPO3\CMS\Core\Resource\ResourceStorage method instead
-        */
-       public function findRecycler($theFile) {
-               GeneralUtility::logDeprecatedFunction();
-               if (GeneralUtility::validPathStr($theFile)) {
-                       $theFile = PathUtility::getCanonicalPath($theFile);
-                       $fI = GeneralUtility::split_fileref($theFile);
-                       $c = 0;
-                       // !!! Method has been put in the storage, can be saftely removed
-                       $rDir = $fI['path'] . $this->recyclerFN;
-                       while ($this->checkPathAgainstMounts($fI['path']) && $c < 20) {
-                               if (@is_dir($rDir) && $this->recyclerFN != $fI['file']) {
-                                       return $rDir;
-                               }
-                               $theFile = $fI['path'];
-                               $theFile = PathUtility::getCanonicalPath($theFile);
-                               $fI = GeneralUtility::split_fileref($theFile);
-                               $c++;
-                       }
-               }
-       }
-
-       /**
-        * Logging file operations
-        *
         * @param int $action The action number. See the functions in the class for a hint. Eg. edit is '9', upload is '1' ...
         * @param int $error The severity: 0 = message, 1 = error, 2 = System Error, 3 = security notice (admin)
         * @param int $details_nr This number is unique for every combination of $type and $action. This is the error-message number, which can later be used to translate error messages.
index 5cc6c1e..f5ac305 100644 (file)
@@ -1012,19 +1012,6 @@ class GeneralUtility {
        }
 
        /**
-        * Inverse version of htmlspecialchars()
-        *
-        * @deprecated since 6.2 replaced by php native htmlspecialchars_decode()
-        *
-        * @param string $value Value where &gt;, &lt;, &quot; and &amp; should be converted to regular chars.
-        * @return string Converted result.
-        */
-       static public function htmlspecialchars_decode($value) {
-               self::logDeprecatedFunction();
-               return htmlspecialchars_decode($value);
-       }
-
-       /**
         * Re-converts HTML entities if they have been converted by htmlspecialchars()
         * Note: Use htmlspecialchars($str, ENT_COMPAT, 'UTF-8', FALSE) to avoid double encoding.
         *       This makes the call to this method obsolete.
@@ -1752,27 +1739,6 @@ class GeneralUtility {
        }
 
        /**
-        * Merges two arrays recursively and "binary safe" (integer keys are
-        * overridden as well), overruling similar values in the first array
-        * ($arr0) with the values of the second array ($arr1)
-        * In case of identical keys, ie. keeping the values of the second.
-        *
-        * @param array $arr0 First array
-        * @param array $arr1 Second array, overruling the first array
-        * @param bool $notAddKeys If set, keys that are NOT found in $arr0 (first array) will not be set. Thus only existing value can/will be overruled from second array.
-        * @param bool $includeEmptyValues If set, values from $arr1 will overrule if they are empty or zero. Default: TRUE
-        * @param bool $enableUnsetFeature If set, special values "__UNSET" can be used in the second array in order to unset array keys in the resulting array.
-        * @return array Resulting array where $arr1 values has overruled $arr0 values
-        * @deprecated [!!!] Since 6.2, use ArrayUtility::mergeRecursiveWithOverrule - WARNING: The new method changed its signature and does not return the first parameter anymore, but it is more performant.
-        */
-       static public function array_merge_recursive_overrule(array $arr0, array $arr1, $notAddKeys = FALSE, $includeEmptyValues = TRUE, $enableUnsetFeature = TRUE) {
-               self::logDeprecatedFunction();
-               ArrayUtility::mergeRecursiveWithOverrule($arr0, $arr1, !$notAddKeys, $includeEmptyValues, $enableUnsetFeature);
-               // Our local $arr0 has been modified now, so return it as result
-               return $arr0;
-       }
-
-       /**
         * An array_merge function where the keys are NOT renumbered as they happen to be with the real php-array_merge function. It is "binary safe" in the sense that integer keys are overridden as well.
         *
         * @param array $arr1 First array
@@ -4236,14 +4202,17 @@ Connection: close
         * Just prefix the function call with "&": "$objRef = &\TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj('EXT:myext/class.tx_myext_myclass.php:&tx_myext_myclass');".
         * This will work ONLY if you prefix the class name with "&" as well. See description of function arguments.
         *
-        * @TODO : Deprecate the whole method in several steps: 1. Deprecated singleton pattern, 2. Deprecate file prefix/ require file, 3. Deprecate usage without valid class name. The last step should be to deprecate the method itslef.
+        * @TODO : Deprecate the whole method in several steps:
+        *      1. Deprecated singleton pattern,
+        *      2. Deprecate file prefix/ require file,
+        *      3. Deprecate usage without valid class name.
+        *      4. The last step should be to deprecate the method itself.
+        *
         * @param string $classRef Class reference, '[file-reference":"]["&"]class-name'. You can prefix the class name with "[file-reference]:" and \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName() will then be used to resolve the filename and subsequently include it by "require_once()" which means you don't have to worry about including the class file either! Example: "EXT:realurl/class.tx_realurl.php:&tx_realurl". Finally; for the class name you can prefix it with "&" and you will reuse the previous instance of the object identified by the full reference string (meaning; if you ask for the same $classRef later in another place in the code you will get a reference to the first created one!).
-        * @param string $checkPrefix Not used anymore since 6.0
-        * @param bool $silent Not used anymore since 6.0
         * @return object The instance of the class asked for. Instance is created with \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance
         * @see callUserFunction()
         */
-       static public function getUserObj($classRef, $checkPrefix = '', $silent = FALSE) {
+       static public function getUserObj($classRef) {
                // Check persistent object and if found, call directly and exit.
                if (is_object($GLOBALS['T3_VAR']['getUserObj'][$classRef])) {
                        return $GLOBALS['T3_VAR']['getUserObj'][$classRef];
index 9785745..660fd2e 100644 (file)
@@ -22,17 +22,6 @@ namespace TYPO3\CMS\Core\Utility;
 class PhpOptionsUtility {
 
        /**
-        * Check if php sql.safe_mode is enabled
-        *
-        * @return bool TRUE if sql.safe_mode is enabled, FALSE if disabled
-        * @deprecated since 6.2, will be removed two versions later
-        */
-       static public function isSqlSafeModeEnabled() {
-               GeneralUtility::logDeprecatedFunction();
-               return self::getIniValueBoolean('sql.safe_mode');
-       }
-
-       /**
         * Check if php session.auto_start is enabled
         *
         * @return bool TRUE if session.auto_start is enabled, FALSE if disabled
index 2640be3..0339143 100644 (file)
@@ -30,7 +30,7 @@ class StringUtility {
         * @param string $needle Reference string which must be found as the "last part" of the full string
         * @throws \InvalidArgumentException
         * @return bool TRUE if $needle was found to be equal to the last part of $str
-        * @deprecated since 6.3 - will be removed two versions later, use beginsWith() instead
+        * @deprecated since 7.0, use beginsWith() instead
         */
        static public function isLastPartOfString($haystack, $needle) {
                GeneralUtility::logDeprecatedFunction();
index 0632832..2e76f91 100644 (file)
@@ -77,19 +77,19 @@ return array(
                'curlUse' => FALSE,                                             // Boolean: If set, try to use cURL to fetch external URLs
                'curlProxyNTLM' => FALSE,                                       // Boolean: Proxy NTLM authentication support.
                /**
-                * @deprecated Deprecated since 4.6 - will be removed in 6.2.
+                * @deprecated since 4.6 - will be removed in 6.2.
                 */
                'curlProxyServer' => '',                                // String: Proxyserver as http://proxy:port/. Deprecated since 4.6 - will be removed in 6.2. See below for http options.
                /**
-                * @deprecated Deprecated since 4.6 - will be removed in 6.2.
+                * @deprecated since 4.6 - will be removed in 6.2.
                 */
                'curlProxyTunnel' => FALSE,                             // Boolean: If set, use a tunneled connection through the proxy (useful for websense etc.). Deprecated since 4.6 - will be removed in 6.2. See below for http options.
                /**
-                * @deprecated Deprecated since 4.6 - will be removed in 6.2.
+                * @deprecated since 4.6 - will be removed in 6.2.
                 */
                'curlProxyUserPass' => '',                              // String: Proxyserver authentication user:pass. Deprecated since 4.6 - will be removed in 6.2. See below for http options.
                /**
-                * @deprecated Deprecated since 4.6 - will be removed in 6.2.
+                * @deprecated since 4.6 - will be removed in 6.2.
                 */
                'curlTimeout' => 0,                                             // Integer: Timeout value for cURL requests in seconds. 0 means to wait indefinitely. Deprecated since 4.6 - will be removed in 6.2. See below for http options.
                'form_enctype' => 'multipart/form-data',// String: This is the default form encoding type for most forms in TYPO3. It allows for file uploads to be in the form. However if file-upload is disabled for your PHP version even ordinary data sent with this encryption will not get to the server. So if you have file_upload disabled, you will have to change this to eg. 'application/x-www-form-urlencoded'
@@ -849,4 +849,4 @@ return array(
                )
        ),
        'SVCONF' => array()
-);
\ No newline at end of file
+);
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-62416-DeprecatedCodeRemovalInCoreSysext.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-62416-DeprecatedCodeRemovalInCoreSysext.rst
new file mode 100644 (file)
index 0000000..a01945d
--- /dev/null
@@ -0,0 +1,108 @@
+============================================================
+Breaking: #62416 - Removal of deprecated code in sysext core
+============================================================
+
+Description
+===========
+
+DataHandler
+-----------
+
+DataHandler::clear_cache() is removed. Use ->clear_cacheCmd instead. Alternatively you can
+call ->registerPageCacheClearing() from a hook to not immediately clear the cache but register clearing after DataHandler operation finishes.
+
+DataHandler::internal_clearPageCache() is removed, use the cache manager directly.
+
+The hook ['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables'] is removed, use the caching framework with database backend instead.
+
+
+DatabaseConnection
+------------------
+
+All connection parameters (host, username, password, db) for methods sql_connect(), sql_select_db() and  connectDB() are removed.
+
+
+PackageManager
+--------------
+
+The globally defined REQUIRED_EXTENSIONS constant is removed.
+
+
+ExtensionManagementUtility
+--------------------------
+
+Parameter classPath of insertModuleFunction() is now unused. Leverage autoloading instead.
+
+
+Removed PHP classes
+-------------------
+
+* TYPO3\CMS\Core\Resource\Service\IndexerService is removed without replacement. Indexing is done internally.
+* TYPO3\CMS\Core\Compatibility\GlobalObjectDeprecationDecorator is removed without replacement.
+  Do not use $GLOBALS[\'typo3CacheManager\'] and $GLOBALS[\'typo3CacheFactory\'] anymore, use GeneralUtility::makeInstance() instead.
+
+
+Removed PHP class members
+-------------------------
+
+* AbstractUserAuthentication::$cookieId is removed. Use isCookieSet() instead.
+
+
+Removed PHP methods
+-------------------
+
+* GeneralUtility::array_merge_recursive_overrule() is removed. Use ArrayUtility::mergeRecursiveWithOverrule() instead.
+  WARNING: The new method changed its signature and does not return the first parameter anymore.
+* GeneralUtility::htmlspecialchars_decode() is removed in favor of the native PHP htmlspecialchars_decode() function.
+* CategoryRegistry::get() is removed. Use isRegistered() instead.
+* CategoryRegistry::applyTca() is removed. The functionality is obsolete.
+* DataHandler::clear_cache() is removed. Use ->clear_cacheCmd instead. Alternatively you can
+  call ->registerPageCacheClearing() from a hook to not immediately clear the cache but register clearing after DataHandler operation finishes.
+* DataHandler::internal_clearPageCache() is removed, use the cache manager directly.
+* FileRepository::findByUid() is removed without replacement.
+* FileRepository::addToIndex() is removed without replacement. Indexing is done transparently.
+* FileRepository::getFileIndexRecordsForFolder() is removed. Use FileIndexRepository::findByFolder() instead.
+* FileRepository::getFileIndexRecord() is removed. Use FileIndexRepository::findOneByFileObject() instead.
+* FileRepository::findBySha1Hash() is removed. Use FileIndexRepository::findByContentHash() instead.
+* FileRepository::update() is removed. Use FileIndexRepository::update() instead.
+* ResourceStorage::getFolderByIdentifier() is replaced by getFolder().
+* ResourceStorage::getFileByIdentifier() is replaced by getFileInfoByIdentifier().
+* ResourceStorage::getFileList() is replaced by getFilesInFolder().
+* ResourceStorage::getFolderList() is removed. Use getFoldersInFolder() instead.
+* ResourceStorage::fetchFolderListFromDriver() is removed. Use getFoldersInFolder() instead.
+* BasicFileUtility::getTotalFileInfo() is removed. Use ResourceStorage instead via $GLOBALS['BE_USER']->getFileStorages()
+* BasicFileUtility::checkFileNameLen() is removed. Use ResourceStorage instead via $GLOBALS['BE_USER']->getFileStorages()
+* BasicFileUtility::isPathValid() is removed in favor of GeneralUtility::validPathStr().
+* BasicFileUtility::blindPath() is removed without replacement.
+* BasicFileUtility::findTempFolder() is removed without replacement.
+* BasicFileUtility::rmDoubleSlash() is removed without replacement.
+* BasicFileUtility::cleanDirectoryName() is removed. Use PathUtility::getCanonicalPath() instead.
+* ExtendedFileUtility::init_actionPerms() is replaced with setActionPermissions().
+* ExtendedFileUtility::printLogErrorMessages() is replaced with pushErrorMessagesToFlashMessageQueue().
+* ExtendedFileUtility::findRecycler() is removed. Use ResourceStorage instead.
+* RteHtmlParser::rteImageStorageDir() and SelectImage::getRTEImageStorageDir() are removed.
+  Use $fileFactory->getFolderObjectFromCombinedIdentifier($GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir']); instead.
+* Locales::getTerLocales() is removed without replacement.
+* Locales::getTerLocaleDependencies() is removed without replacement.
+* ExtensionManagementUtility::getRequiredExtensionListArray() is removed without replacement.
+* ExtensionManagementUtility::writeNewExtensionList() is removed without replacement.
+* PhpOptionsUtility::isSqlSafeModeEnabled() is removed without replacement.
+* ClassLoader::getAliasForClassName() is replaced with getAliasesForClassName().
+
+
+Impact
+======
+
+A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
+
+
+Affected installations
+======================
+
+Any installation which contains third party code still using these deprecated methods.
+
+
+Migration
+=========
+
+Replace the calls with the suggestions outlined above.
index 260676f..7576e65 100644 (file)
@@ -76,26 +76,4 @@ class InstallToolFormProtectionTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                );
        }
 
-
-       //////////////////////////////////////////////////
-       // Tests concerning createValidationErrorMessage
-       //////////////////////////////////////////////////
-
-       /**
-        * @test
-        * @deprecated since 6.2. Test can be removed if injectInstallTool method is dropped
-        */
-       public function createValidationErrorMessageAddsErrorMessage() {
-               $installTool = $this->getMock(
-                       'stdClass', array('addErrorMessage'), array(), '', FALSE
-               );
-               $installTool->expects($this->once())->method('addErrorMessage')
-                       ->with(
-                               'Validating the security token of this form has failed. ' .
-                                       'Please reload the form and submit it again.'
-                       );
-               $this->fixture->injectInstallTool($installTool);
-
-               $this->fixture->_call('createValidationErrorMessage');
-       }
 }
diff --git a/typo3/sysext/core/Tests/Unit/Resource/Service/IndexerServiceTest.php b/typo3/sysext/core/Tests/Unit/Resource/Service/IndexerServiceTest.php
deleted file mode 100644 (file)
index 5f572bd..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Tests\Unit\Resource\Service;
-
-/**
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Test case
- *
- */
-class IndexerServiceTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
-
-       /**
-        * @test
-        */
-       public function indexFileUpdatesFileProperties() {
-               $GLOBALS['TYPO3_DB'] = $this->getMock('TYPO3\\CMS\\Core\\Database\\DatabaseConnection', array(), array(), '', FALSE);
-
-               /** @var $subject \TYPO3\CMS\Core\Resource\Service\IndexerService|\PHPUnit_Framework_MockObject_MockObject */
-               $subject = $this->getMock(
-                       'TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService',
-                       array('gatherFileInformation', 'getFileIndexRepository', 'emitPreFileIndexSignal', 'emitPostFileIndexSignal')
-               );
-
-               $fileInfo = array(
-                       'mount' => 1,
-                       'identifier' => '/some/filepath/filename.jpg',
-                       'size' => 1234,
-                       'uid' => rand(1, 100),
-                       'sha1' => '123',
-               );
-
-               $subject->expects($this->any())->method('gatherFileInformation')->will($this->returnValue($fileInfo));
-
-               $repositoryMock = $this->getMock('TYPO3\\CMS\\Core\\Resource\\Index\\FileIndexRepository');
-               $repositoryMock->expects($this->any())->method('findByContentHash')->will($this->returnValue(array()));
-               $subject->expects($this->any())->method('getFileIndexRepository')->will($this->returnValue($repositoryMock));
-
-               $mockedFile = $this->getMock('TYPO3\\CMS\\Core\\Resource\\File', array(), array(), '', FALSE);
-               $mockedFile->expects($this->once())->method('updateProperties');
-
-               $subject->indexFile($mockedFile);
-       }
-
-       /**
-        * @test
-        */
-       public function indexFileSetsCreationdateAndTimestampPropertiesOfRecordToCurrentExecutionTime() {
-               $fileInfo = array();
-               /** @var $subject \TYPO3\CMS\Core\Resource\Service\IndexerService|\PHPUnit_Framework_MockObject_MockObject */
-               $subject = $this->getMock('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService', array('gatherFileInformation', 'getFileIndexRepository', 'emitPreFileIndexSignal', 'emitPostFileIndexSignal'));
-
-               $subject->expects($this->any())->method('gatherFileInformation')->will($this->returnValue($fileInfo));
-
-               $repositoryMock = $this->getMock('TYPO3\\CMS\\Core\\Resource\\Index\\FileIndexRepository');
-               $repositoryMock->expects($this->any())->method('findByContentHash')->will($this->returnValue(array()));
-               $repositoryMock->expects($this->once())->method('add');
-               $subject->expects($this->any())->method('getFileIndexRepository')->will($this->returnValue($repositoryMock));
-
-               $GLOBALS['TYPO3_DB'] = $this->getMock('TYPO3\\CMS\\Core\\Database\\DatabaseConnection', array(), array(), '', FALSE);
-
-               $mockedFile = $this->getMock('TYPO3\\CMS\\Core\\Resource\\File', array(), array(), '', FALSE);
-
-               $subject->indexFile($mockedFile);
-       }
-}
\ No newline at end of file
index 74c1fcd..72f6627 100644 (file)
@@ -4474,35 +4474,6 @@ class GeneralUtilityTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                );
        }
 
-       /**
-        * @test
-        */
-       public function arrayMergeRecursiveOverruleDoesConsiderUnsetValues() {
-               $array1 = array(
-                       'first' => array(
-                               'second' => 'second',
-                               'third' => 'third'
-                       ),
-                       'fifth' => array()
-               );
-               $array2 = array(
-                       'first' => array(
-                               'second' => 'overrule',
-                               'third' => '__UNSET',
-                               'fourth' => 'overrile'
-                       ),
-                       'fifth' => '__UNSET'
-               );
-               $expected = array(
-                       'first' => array(
-                               'second' => 'overrule',
-                               'fourth' => 'overrile'
-                       )
-               );
-               $result = Utility\GeneralUtility::array_merge_recursive_overrule($array1, $array2);
-               $this->assertEquals($expected, $result);
-       }
-
        ///////////////////////////////////////////////////
        // Tests concerning substUrlsInPlainText
        ///////////////////////////////////////////////////
index 5aa1984..2a276f1 100644 (file)
@@ -4035,7 +4035,6 @@ class TypoScriptFrontendController {
                        '"' . TYPO3_mainDir . 'ext/',
                        '"' . TYPO3_mainDir . 'sysext/',
                        '"' . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'],
-                       '"' . $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir']
                );
                $replace = array(
                        '"' . $this->absRefPrefix . 'typo3temp/',
@@ -4044,7 +4043,6 @@ class TypoScriptFrontendController {
                        '"' . $this->absRefPrefix . TYPO3_mainDir . 'ext/',
                        '"' . $this->absRefPrefix . TYPO3_mainDir . 'sysext/',
                        '"' . $this->absRefPrefix . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'],
-                       '"' . $this->absRefPrefix . $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir']
                );
                // Process additional directories
                $directories = GeneralUtility::trimExplode(',', $GLOBALS['TYPO3_CONF_VARS']['FE']['additionalAbsRefPrefixDirectories'], TRUE);
index 864401c..040f742 100644 (file)
@@ -374,7 +374,6 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                        $temporaryFileName = GeneralUtility::tempnam('export');
                                        file_put_contents($temporaryFileName, $out);
                                        $file = $saveFolder->addFile($temporaryFileName, $dlFile, 'replace');
-                                       $file = $this->getIndexerService()->indexFile($file);
                                        if ($saveFilesOutsideExportFile) {
                                                $filesFolderName = $dlFile . '.files';
                                                $filesFolder = $saveFolder->createFolder($filesFolderName);
@@ -1529,16 +1528,4 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                return $file;
        }
 
-       /**
-        * Internal function to retrieve the indexer service,
-        * if it does not exist, an instance will be created
-        *
-        * @throws \InvalidArgumentException
-        * @return \TYPO3\CMS\Core\Resource\Service\IndexerService
-        */
-       protected function getIndexerService() {
-               return GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService');
-       }
-
-
 }
index 68b549d..3ee4a4c 100644 (file)
@@ -149,17 +149,6 @@ class SelectImage extends \TYPO3\CMS\Recordlist\Browser\ElementBrowser {
        }
 
        /**
-        * Get the path to the folder where RTE images are stored
-        *
-        * @return string the path to the folder where RTE images are stored
-        * @deprecated since 6.2, will be removed in two versions
-        */
-       protected function getRTEImageStorageDir() {
-               GeneralUtility::logDeprecatedFunction();
-               return $this->imgPath ?: $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir'];
-       }
-
-       /**
         * Insert the image in the editing area
         *
         * @return void