[TASK] Deprecate init.php 41/40241/4
authorBenjamin Mack <benni@typo3.org>
Mon, 15 Jun 2015 09:11:24 +0000 (11:11 +0200)
committerHelmut Hummel <helmut.hummel@typo3.org>
Mon, 15 Jun 2015 19:52:29 +0000 (21:52 +0200)
In order to move all unneeded files from typo3/, the originally lengthy init.php
is now deprecated in favor of using the bootstrap initialization code directly in
the TYPO3 Backend.

Resolves: #67471
Releases: master
Change-Id: Ibb6eb5fc44e985842fa5058cf9cdae50e87d114f
Reviewed-on: http://review.typo3.org/40241
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
30 files changed:
typo3/alt_clickmenu.php
typo3/alt_db_navframe.php
typo3/alt_doc.php
typo3/alt_file_navframe.php
typo3/backend.php
typo3/browser.php
typo3/db_new.php
typo3/dummy.php
typo3/index.php
typo3/init.php
typo3/login_frameset.php
typo3/logout.php
typo3/move_el.php
typo3/show_item.php
typo3/sysext/backend/Classes/AjaxLoginHandler.php
typo3/sysext/backend/Classes/FrontendBackendUserAuthentication.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/backend/Classes/Utility/IconUtility.php
typo3/sysext/cms/layout/db_layout.php
typo3/sysext/cms/layout/db_new_content_el.php
typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php
typo3/sysext/core/Classes/Core/Bootstrap.php
typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php
typo3/sysext/core/Classes/Utility/File/BasicFileUtility.php
typo3/sysext/core/Documentation/Changelog/master/Deprecation-67471-InitPhp.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/openid/class.tx_openid_return.php
typo3/tce_db.php
typo3/tce_file.php
typo3/thumbs.php

index 7bd6934..6944adf 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog('alt_clickmenu.php is deprecated as of TYPO3 CMS 7, and will not work anymore, please use the ajax.php functionality.');
 $clickMenuController = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Controller\ClickMenuController::class);
 $clickMenuController->main();
-$clickMenuController->printContent();
\ No newline at end of file
+$clickMenuController->printContent();
index ba0f2bf..bdf918a 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require_once 'init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog('Usage of alt_db_navframe.php is deprecated since TYPO3 CMS 7, and will be removed in TYPO3 CMS 8');
 // Make instance if it is not an AJAX call
index 72a71a7..cab75fd 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require_once 'init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 \TYPO3\CMS\Backend\Utility\BackendUtility::lockRecords();
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
index 8252449..5c14d76 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require_once 'init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog('Usage of alt_file_navframe.php is deprecated since TYPO3 CMS 7, and will be removed in TYPO3 CMS 8');
 
index 4d0025a..66c23f1 100644 (file)
  *
  * The TYPO3 project - inspiring people to share!
  */
-require_once 'init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_misc.xlf');
 
 // Document generation
index a10edc4..d31458c 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to the file/record browser window was moved to an own module. Please use BackendUtility::getModuleUrl(\'browser\') to link to browser.php. This script will be removed in TYPO3 CMS 8.'
index fd28c70..faebdee 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to create a new database entry was moved to an own module. Please use BackendUtility::getModuleUrl(\'db_new\') to link to db_new.php. This script will be removed in TYPO3 CMS 8.'
index bb60cc6..4275d13 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to the dummy window was moved to an own module. Please use BackendUtility::getModuleUrl(\'dummy\') to link to dummy.php. This script will be removed in TYPO3 CMS 8.'
index be35223..d31f369 100644 (file)
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 define('TYPO3_PROCEED_IF_NO_USER', 1);
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 $loginController = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Controller\LoginController::class);
 $loginController->main();
index 235b9c8..4f18342 100644 (file)
@@ -15,7 +15,7 @@
 /**
  * TYPO3 Backend initialization
  *
- * This script is called by every backend script.
+ * This script was called by every backend script to set up the bootstrap.
  * The script authenticates the backend user.
  * In addition this script also initializes the database and other depending on LocalConfiguration.php
  *
@@ -44,3 +44,4 @@ define('TYPO3_MODE', 'BE');
 
 require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
 \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
+\TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog('Usage of typo3/init.php is deprecated since TYPO3 CMS 7, and will be removed in TYPO3 CMS 8. Initialize the bootstrap call directly in your entry script.');
index 473c30a..7873c52 100644 (file)
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 define('TYPO3_PROCEED_IF_NO_USER', 1);
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'Login frameset is moved to an own module. Please use BackendUtility::getModuleUrl(\'login_frameset\') to link to login_frameset.php. This script will be removed in TYPO3 CMS 8.'
index 8b57d7d..3b54af7 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to logout was moved to an own module. Please use BackendUtility::getModuleUrl(\'logout\') to link to logout.php. This script will be removed in TYPO3 CMS 8.'
index 3498d39..23cdbbb 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
 
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'Moving an element is moved to an own module. Please use BackendUtility::getModuleUrl(\'move_element\') to link to move_el.php. This script will be removed in TYPO3 CMS 8.'
 );
index cb48e14..f80a4d7 100644 (file)
  * The TYPO3 project - inspiring people to share!
  */
 
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to show_item was moved to an own module. Please use BackendUtility::getModuleUrl(\'show_item\') to link to show_item.php. This script will be removed in TYPO3 CMS 8.'
index 536f264..c65834f 100644 (file)
@@ -24,7 +24,7 @@ class AjaxLoginHandler {
        /**
         * Handles the actual login process, more specifically it defines the response.
         * The login details were sent in as part of the ajax request and automatically logged in
-        * the user inside the init.php part of the ajax call. If that was successful, we have
+        * the user inside the TYPO3 CMS bootstrap part of the ajax call. If that was successful, we have
         * a BE user and reset the timer and hide the login window.
         * If it was unsuccessful, we display that and show the login box again.
         *
index ddd4a0b..4e8613a 100644 (file)
@@ -166,7 +166,7 @@ class FrontendBackendUserAuthentication extends \TYPO3\CMS\Core\Authentication\B
         *
         ****************************************************/
        /**
-        * Implementing the access checks that the typo3/init.php script does before a user is ever logged in.
+        * Implementing the access checks that the TYPO3 CMS bootstrap script does before a user is ever logged in.
         * Used in the frontend.
         *
         * @return bool Returns TRUE if access is OK
index 430e08a..b11d36b 100644 (file)
@@ -33,8 +33,6 @@ use TYPO3\CMS\Fluid\View\StandaloneView;
  * Finally this file includes the language class for TYPO3's backend.
  *
  * After this file $LANG and $TBE_TEMPLATE are global variables / instances of their respective classes.
- * This file is typically included right after the init.php file,
- * if language and layout is needed.
  *
  * Please refer to Inside TYPO3 for a discussion of how to use this API.
  *
index a4c4586..66f86bc 100644 (file)
@@ -30,7 +30,6 @@ use TYPO3\CMS\Core\Versioning\VersionState;
  *
  * Notes:
  * These functions are strongly related to the interface of TYPO3.
- * The class is included in eg. init.php
  * Static class, functions called without making a class instance.
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
index 4049242..5ea4918 100644 (file)
  */
 unset($MCONF);
 require __DIR__ . '/conf.php';
-require $BACK_PATH . 'init.php';
+
+define('TYPO3_MODE', 'BE');
+
+require $BACK_PATH . 'sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 $LANG->includeLLFile('EXT:cms/layout/locallang.xlf');
 
 $BE_USER->modAccess($MCONF, 1);
index e7a1092..b750bf6 100644 (file)
@@ -20,7 +20,8 @@
  */
 unset($MCONF);
 require __DIR__ . '/conf.php';
-require $BACK_PATH . 'init.php';
+require $BACK_PATH . 'sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 // Unset MCONF/MLANG since all we wanted was back path etc. for this particular script.
 unset($MCONF);
 unset($MLANG);
index 76584d3..c475657 100644 (file)
@@ -2264,7 +2264,7 @@ This is a dump of the failures:
         * access lists of all kind, further check IP, set the ->uc array and send login-notification email if required.
         * If no user is logged in the default behaviour is to exit with an error message,
         * but this will happen ONLY if the constant TYPO3_PROCEED_IF_NO_USER is set TRUE.
-        * This function is called right after ->start() in fx. init.php
+        * This function is called right after ->start() in fx. the TYPO3 CMS bootsrap
         *
         * @throws \RuntimeException
         * @return void
index 3b446bf..3b5b7c3 100644 (file)
@@ -804,7 +804,6 @@ class Bootstrap {
                unset($GLOBALS['TBE_MODULES']);
                unset($GLOBALS['TBE_STYLES']);
                unset($GLOBALS['FILEICONS']);
-               // Those set in init.php:
                unset($GLOBALS['BE_USER']);
                // Those set otherwise:
                unset($GLOBALS['TBE_MODULES_EXT']);
index 9807255..e94d008 100644 (file)
@@ -377,14 +377,14 @@ class SystemEnvironmentBuilder {
         * We have two main scenarios for entry points:
         * - Directly called documentRoot/index.php (-> FE call or eiD include): index.php sets $relativePathPart to
         * empty string to hint this code that the document root is identical to the directory the script is located at.
-        * - An indirect include of typo3/init.php (-> a backend module, the install tool, or scripts like ajax.php).
-        * If init.php is included we distinguish two cases:
+        * - An indirect include of any Backend related script (-> a backend module, the install tool, or scripts like ajax.php).
+        * If in backend mode we distinguish two cases:
         * -- A backend module defines 'TYPO3_MOD_PATH': This is the case for "old" modules that are not called through
         * "mod.php" dispatcher, and in the install tool. The TYPO3_MOD_PATH defines the relative path to the typo3/
         * directory. This is taken as base to calculate the document root.
-        * -- A script includes init.php and does not define 'TYPO3_MOD_PATH': This is the case for the mod.php dispatcher
-        * and other entry scripts like 'cli_dispatch.phpsh' or 'ajax.php' that are located parallel to init.php. In
-        * this case init.php sets 'typo3/' as $relativePathPart as base to calculate the document root.
+        * -- A Backend script that does not define 'TYPO3_MOD_PATH': This is the case for the mod.php dispatcher
+        * and other entry scripts like 'cli_dispatch.phpsh' or 'ajax.php' that are located inside typo3/ directly. In
+        * this case the Bootstrap->run() command sets 'typo3/' as $relativePathPart as base to calculate the document root.
         *
         * This basically boils down to the following code:
         * If TYPO3_MOD_PATH is defined, subtract this 'local' part from the entry point directory, else use
index 4b15fb3..4cfad40 100644 (file)
@@ -137,7 +137,6 @@ class BasicFileUtility {
         * @param array Not in use anymore
         * @param array Array with information about allowed and denied file extensions. Typically passed: $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']
         * @return void
-        * @see typo3/init.php
         */
        public function init($mounts, $f_ext) {
                $this->f_ext['webspace']['allow'] = GeneralUtility::uniqueList(strtolower($f_ext['webspace']['allow']));
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-67471-InitPhp.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-67471-InitPhp.rst
new file mode 100644 (file)
index 0000000..c845b46
--- /dev/null
@@ -0,0 +1,38 @@
+========================================
+Deprecation: #67471 - Deprecate init.php
+========================================
+
+Description
+===========
+
+In order to move all unneeded files from typo3/, the originally much-used init.php
+is now deprecated in favor of using the bootstrap initialization code directly in
+the TYPO3 Backend.
+
+
+Impact
+======
+
+All entry points from third-party extensions using init.php will now throw a deprecation warning.
+
+
+Affected Installations
+======================
+
+All instances having extensions that include init.php when not using the mod.php for modules or ajax calls.
+
+
+Migration
+=========
+
+Use the following code instead of the init.php inclusion if you still need custom entry points:
+
+.. code-block:: php
+
+       define('TYPO3_MODE', 'BE');
+
+       require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+       \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
+
+
+If using a module, use the mod.php to register your own module.
index cf0d6a5..b67f383 100644 (file)
@@ -117,10 +117,11 @@ class TypoScriptFrontendController {
 
        /**
         * Gets set when we are processing a page of type shortcut in the early stages
-        * opf init.php when we do not know about languages yet, used later in init.php
+        * of the request when we do not know about languages yet, used later in the request
         * to determine the correct shortcut in case a translation changes the shortcut
         * target
         * @var array|NULL
+        * @see checkTranslatedShortcut()
         */
        protected $originalShortcutPage = NULL;
 
index d544490..0c5f985 100644 (file)
@@ -18,7 +18,8 @@ if (isset($_GET['login_status'])) {
 }
 
 define('TYPO3_MOD_PATH', 'sysext/openid/');
-require_once '../../init.php';
+require '../../sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 /** @var \TYPO3\CMS\Core\Authentication\BackendUserAuthentication $beUser */
 $beUser = $GLOBALS['BE_USER'];
index 67121d3..6135aa2 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'The entry point to data handling via DataHandler was moved to an own module. Please use BackendUtility::getModuleUrl(\'tce_db\') to link to tce_db.php / DataHandler. This script will be removed in TYPO3 CMS 8.'
index 82bd6a0..c4c12d7 100644 (file)
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'File handling entry point was moved an own module. Please use BackendUtility::getModuleUrl(\'tce_file\') to link to tce_file.php. This script will be removed in TYPO3 CMS 8.'
index 7a3bad0..4a71544 100644 (file)
  * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8, use the corresponding Resource objects and Processing functionality
  */
 
-require __DIR__ . '/init.php';
+define('TYPO3_MODE', 'BE');
+
+require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
+\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/');
 
 \TYPO3\CMS\Core\Utility\GeneralUtility::deprecationLog(
        'thumbs.php is no longer in use, please use the corresponding Resource objects to generate a preview functionality for thumbnails.'
 );
 $GLOBALS['SOBE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\View\ThumbnailView::class);
 $GLOBALS['SOBE']->init();
-$GLOBALS['SOBE']->main();
\ No newline at end of file
+$GLOBALS['SOBE']->main();