[BUGFIX] SqlParser: trim all kinds of whitespaces
[Packages/TYPO3.CMS.git] / NEWS.txt
1 This document is a part of the TYPO3 project. TYPO3 is an open source web
2 content management system released under the GNU GPL. TYPO3 is copyright
3 (c) 1999-2012 by Kasper Skaarhoj.
5 This document contains information about TYPO3 version 6.0 has been released
6 on November 27th 2012.
8 An up-to-date version of this document also containing links to further in
9 depth information can be found here:
11 http://wiki.typo3.org/TYPO3_6.0
13 ===============================================================================
14 Compatibility
15 ===============================================================================
17 -------------------------------------------------------------------------------
18 System environment
19 -------------------------------------------------------------------------------
21 * PHP setting register_globals must be off
23 The bootstrap now verifies the PHP setting register_globals is disabled for
24 security reasons. The script dies otherwise.
26 -------------------------------------------------------------------------------
27 PHP namespaces & TYPO3 autoloader
28 -------------------------------------------------------------------------------
30 * Introducing PHP namespaces
32 Almost every PHP class file has been modified to support PHP namespaces and
33 was moved to a more meaningful location. Besides that old class names, e.g.
34 t3lib_div still can be used - however it is deprecated - this works by using a
35 class alias map pointing to the new namespaces class name.
37 see the files in typo3/sysext/core/Migrations/Code/ for the mentioned maps
39 Basically the classes are now arranged in three basic components, which are
40 core, backend and frontend - each of them are located in typo3/sysext/. The
41 old class files (e.g. t3lib/class.t3lib_div.php) are still shipped with the
42 Core and point to the new class files - this prevents PHP fatal errors if
43 extension use hardcoded require_once() calls to old class names. This layer
44 is deprecated as well.
46 see http://wiki.typo3.org/Namespaces for further details
48 * New XCLASS handling
50 The old way of registering XCLASSes in $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS'] is
51 removed. XCLASSES must now be registered by adding a class implementation
52 configuration to the $TYPO3_CONF_VARS['SYS']['Objects'] array. The key of the
53 array is the class name for which you want to define an implementation class.
55 Example:
56 $TYPO3_CONF_VARS['SYS']['Objects']['TYPO3\\CMS\\Core\\Database\\DatabaseConnection'] =
57 array('className' => 'TYPO3\\CMS\\Dbal\\Database\\DatabaseConnection');
59 As with Xclasses, the implementation resolving works recursively and you are free
60 to put the implementation class name into the namespace of your own extension.
62 This means that every XCLASS registration both for core and extension classes
63 will not work any more with TYPO3 6.0.
64 To keep compatibility for 6.0 and 4.x, extension authors should add their class
65 to both the XCLASS array and the object implementation array.
67 -------------------------------------------------------------------------------
68 PHP bootstrap and configuration
69 -------------------------------------------------------------------------------
71 * Refactored bootstrap
73 The bootstrap changes all basic initializations for frontend, backend, CLI and
74 install tool rendering. If a copied and customized version of the frontend's
75 index.php was used, it has to be updated to the current index.php file of the
76 TYPO3 Core sources (this applies to custom symbolic links as well).
78 * New handling of typo3conf/localconf.php
80 The localconf.php file is deprecated and not used in the core any longer. As
81 substitution the new file typo3conf/LocalConfiguration.php is introduced that
82 basically only returns the local configuration as array. The install tool and
83 other installation changing core code like the extension manager now writes
84 the whole file if configuration is changed. As a result, no more local
85 code is allowed in this file.
86 To overload the local configuration with special instance specific code that
87 might still be needed, it is possible to add the php code to the optional
88 additional file typo3conf/AdditionalConfiguration.php that is executed during
89 bootstrap of TYPO3 after LocalConfiguration.php.
90 An ugrade wizard takes care of migrating contents of the previous localconf.php
91 file to the new scheme.
93 * List of loaded extensions stored as array
95 The list of loaded extensions in typo3conf/LocalConfiguration (key EXT/extList)
96 was transferred to an array for better readability and maintenance. It is
97 available with the new key EXT/extListArray. The old, comma separated value is
98 still kept, but not used in the core anymore. It will be removed with a later
99 version from the core.
101 * Moved default TYPO3_CONF_VARS
103 The default TYPO3_CONF_VARS definitions where moved from t3lib/config_default.php
104 to an own file in t3lib/stddb/DefaultSettings.php.
106 * Removed TYPO3_tables_script constant
108 It was possible to define a different base TCA definition file by defining the
109 variable typo_db_tables_script in localconf.php. This functionality is removed
110 without substitution.
112 * Restricted access of global variables in ext_tables.php and ext_localconf.php
114 With the bootstrap refactoring the visibility of ext_tables.php and
115 ext_localconf.php was reduced. The files do not run in global context anymore,
116 so variables like $TCA should be accessed through $GLOBALS['TCA']. There is a
117 compatibility layer, but the core can not guarantee that extensions with
118 strange setup does not break.
120 -------------------------------------------------------------------------------
121 Deprecated and removed components
122 -------------------------------------------------------------------------------
124 * Deprecated methods
126 Deprecated methods that were initially targeted to be removed in TYPO3 4.8/6.0
127 have finally been removed. The deprecation log shows which functions were
128 declared to be deprecated and will be removed in the next TYPO3 versions.
130 * Removed classes prior to scheduled deprecation removal
132 t3lib_BEDisplayLog: This class was used only by the old belog module, its
133 functionality is now encapsulated in EXT:belog itself. Since it is very
134 unlikely that the class was used by other external extensions, the file was
135 removed instead of deprecating it.
137 * Removed doNotLoadInFE flag
139 With TYPO3 4.3 the flag doNotLoadInFE flag was introduced in ext_emconf.php
140 extension files to hint the core that an extension has no frontend
141 functionality. The performance gain of this change in the frontend was minimal.
142 The flag is now removed and the according extList_FE setting in localconf.php
143 has no effect anymore.
145 * Removed system extension simulatestatic
147 The system extension to simulate static documents was removed from the core.
148 @TODO: Issue #36025 must be solved and this note here adapted, otherwise the
149 removal will be reverted.
151 * Removed TypoScript option noBlur
153 The ancient noBlur TypoScript setting for old Browsers (Internet Explorer up to
154 version 5.5) was removed without any alternatives. The setting has no effect
155 anymore and can be removed from custom TypoScript objects, especially MENU.
157 * Removed internal history cleanup feature
159 TYPO3 will not clean the history (table "sys_history") on its own anymore.
160 This can lead to a large amount of data in this table. Please consider using
161 the garbage collection scheduler task to remove old entries.
163 * Removed TypoScript resources
165 The ancient feature to add images and other resources directly to TypoScript
166 records is dropped and the handling removed. This old feature - accessible
167 from the 'Info/modify' tab in the Template module - was hardly ever used
168 and was partly broken.
169 If this feature was still in use, it is recommended to not drop the
170 resource field from table sys_template during upgrading, fix the using
171 TypoScript to refer to resources located in fileadmin or similar directly,
172 and afterwards to finally delete the resource field in the install tool.
174 * Removed page hit logging functionality
176 Writing log entries to some logfile during frontend page hit was removed.
177 There are tons of solutions on the net and on server basis that can do a
178 better job than the core implementation ever did. Therefor the complete
179 code was dropped and all TypoScript config.stat* options are obsolete.
181 * Removed compression of javascript files with jsmin
183 The default compression of certain javascript files in frontend and backend
184 with the jsmin library was removed from the core due to license issues. The
185 code segment was substituted with a hook, so extensions can now deliver
186 compression solutions if needed. In general, it is a good idea to configure
187 a webserver to compress javascript and css files on the webserver with gzip.
190 ===============================================================================
191 Changes and Improvements
192 ===============================================================================
194 This will list all changes and improvements between TYPO3 4.7 and 6.0. For
195 technical details see ChangeLog included in the typo3_src package.
197 -------------------------------------------------------------------------------
198 General
199 -------------------------------------------------------------------------------
201 * Extbase and fluid always loaded
203 The core extensions 'extbase' and 'fluid' are used in core classes like t3lib
204 and in several important core extensions. Extbase and fluid are now required
205 extensions and always loaded.
207 -------------------------------------------------------------------------------
208 PHP namespaces & TYPO3 autoloader
209 -------------------------------------------------------------------------------
211 * PHP namespaces in the TYPO3 autoloader
213 The autoloader can now handle fully qualified namespaced class names.
214 If you use the fully qualified namespaced class name like
215 '\Tx\ExtName\Foo\Bar', the autoloader will find the containing class following
216 the extbase naming scheme. The mentioned class will be found if it is located
217 in file 'exttensionkey'/Classes/Foo/Bar.php.
218 It is also possible to use class names not following the extbase naming scheme
219 by providing the "name spaced class name -> file" mapping in ext_autoloader.php.
221 -------------------------------------------------------------------------------
222 Backend
223 -------------------------------------------------------------------------------
225 * New backend user administration module
227 The backend user administration module was created from scratch again. The
228 interface changed a lot, it is now possible to filter large groups of users
229 with certain criteria and to compare specific user information. The code was
230 made more flexible to easily cope with different use cases and to be more
231 open for future enhancements.
233 * New extension manager
235 The extension manager was rewritten to be based on Extbase and thus to have a
236 discrete controller and action API. The view utilized jQuery in the client's
237 user interface and has been reduced to only contain required functionality
238 for (un-)installing or configuring extensions. Uploading extensions to TER
239 and directly modifying files of extensions is not supported in the Core
240 anymore, but will be available as separate extension tools package in the TER.
242 * Introducing global categorization
244 A new global categorization has been introduced, thus any core component and
245 extension can utilize this in the backend. An API call can be used to set
246 accordant TCA and to create required SQL definition changes during runtime.
248 See the following example to create a new field categories in a table:
250 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
251 'myextension',
252 'tx_myextension_table',
253 'categories'
254 );
256 * Support for NULL values in backend forms
258 In some situations it might become handy to have an "undefined" value, e.g.
259 for timestamp fields where "0" has the meaning of the unix timestamp origin
260 back in 1970. Therefore a new TCA "eval" subtype has been introduced to support
261 that - which will be visualized in the backend with a new "enable field"
262 checkbox. Besides that the SQL definition must not have the "NOT NULL"
263 statement for that field.
265 Example to add the "undefined" (NULL value) to the field "myfield":
267 $TCA['tx_myextension_table']['columns']['myfield']['config'] = array(
268 'type' => 'input',
269 'eval' => 'null',
270 );
272 -------------------------------------------------------------------------------
273 Administration / Customization
274 -------------------------------------------------------------------------------
276 * Introducing the File Abstraction Layer
278 The File Abstraction Layer ("FAL") is used to create accordant database records
279 for each file. This was the same file can be used (referenced) in multiple
280 elements without having to clone and clutter the file-system anymore. The TYPO3
281 Core already makes use of the new File Abstraction Layer, but elderly extensions
282 still can use the old way. Besides that, the Install Tool provides several
283 upgrade wizards to migrate files to the new structure.
285 see http://docs.typo3.org/typo3cms/FileAbstractionLayerReference/