[TASK] Set version to 6.1-dev
[Packages/TYPO3.CMS.git] / NEWS.txt
index 5ebcc3b..a1c9280 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
-************************************************************************
-CHANGES & IMPROVEMENTS between TYPO3 4.4 and 4.5
-(for technical details see ChangeLog)
-************************************************************************
+This document is a part of the TYPO3 project. TYPO3 is an open source web
+content management system released under the GNU GPL. TYPO3 is copyright
+(c) 1999-2012 by Kasper Skaarhoj.
 
+This document contains information about TYPO3 version 6.0 has been released
+on November 27th 2012.
+
+An up-to-date version of this document also containing links to further in
+depth information can be found here:
+
+http://wiki.typo3.org/TYPO3_6.0
+
+===============================================================================
+Compatibility
+===============================================================================
+
+-------------------------------------------------------------------------------
+System environment
+-------------------------------------------------------------------------------
+
+* PHP setting register_globals must be off
+
+The bootstrap now verifies the PHP setting register_globals is disabled for
+security reasons. The script dies otherwise.
+
+-------------------------------------------------------------------------------
+PHP namespaces & TYPO3 autoloader
+-------------------------------------------------------------------------------
+
+* Introducing PHP namespaces
+
+Almost every PHP class file has been modified to support PHP namespaces and
+was moved to a more meaningful location. Besides that old class names, e.g.
+t3lib_div still can be used - however it is deprecated - this works by using a
+class alias map pointing to the new namespaces class name.
+
+       see the files in typo3/sysext/core/Migrations/Code/ for the mentioned maps
+
+Basically the classes are now arranged in three basic components, which are
+core, backend and frontend - each of them are located in typo3/sysext/. The
+old class files (e.g. t3lib/class.t3lib_div.php) are still shipped with the
+Core and point to the new class files - this prevents PHP fatal errors if
+extension use hardcoded require_once() calls to old class names. This layer
+is deprecated as well.
+
+       see http://wiki.typo3.org/Namespaces for further details
+
+* New XCLASS handling
+
+The old way of registering XCLASSes in $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS'] is
+removed. XCLASSES must now be registered by adding a class implementation
+configuration to the $TYPO3_CONF_VARS['SYS']['Objects'] array. The key of the
+array is the class name for which you want to define an implementation class.
+
+Example:
+$TYPO3_CONF_VARS['SYS']['Objects']['TYPO3\\CMS\\Core\\Database\\DatabaseConnection'] =
+       array('className' => 'TYPO3\\CMS\\Dbal\\Database\\DatabaseConnection');
+
+As with Xclasses, the implementation resolving works recursively and you are free
+to put the implementation class name into the namespace of your own extension.
+
+This means that every XCLASS registration both for core and extension classes
+will not work any more with TYPO3 6.0.
+To keep compatibility for 6.0 and 4.x, extension authors should add their class
+to both the XCLASS array and the object implementation array.
+
+-------------------------------------------------------------------------------
+PHP bootstrap and configuration
+-------------------------------------------------------------------------------
+
+* Refactored bootstrap
+
+The bootstrap changes all basic initializations for frontend, backend, CLI and
+install tool rendering. If a copied and customized version of the frontend's
+index.php was used, it has to be updated to the current index.php file of the
+TYPO3 Core sources (this applies to custom symbolic links as well).
+
+* New handling of typo3conf/localconf.php
+
+The localconf.php file is deprecated and not used in the core any longer. As
+substitution the new file typo3conf/LocalConfiguration.php is introduced that
+basically only returns the local configuration as array. The install tool and
+other installation changing core code like the extension manager now writes
+the whole file if configuration is changed. As a result, no more local
+code is allowed in this file.
+To overload the local configuration with special instance specific code that
+might still be needed, it is possible to add the php code to the optional
+additional file typo3conf/AdditionalConfiguration.php that is executed during
+bootstrap of TYPO3 after LocalConfiguration.php.
+An ugrade wizard takes care of migrating contents of the previous localconf.php
+file to the new scheme.
+
+* List of loaded extensions stored as array
+
+The list of loaded extensions in typo3conf/LocalConfiguration (key EXT/extList)
+was transferred to an array for better readability and maintenance. It is
+available with the new key EXT/extListArray. The old, comma separated value is
+still kept, but not used in the core anymore. It will be removed with a later
+version from the core.
+
+* Moved default TYPO3_CONF_VARS
+
+The default TYPO3_CONF_VARS definitions where moved from t3lib/config_default.php
+to an own file in t3lib/stddb/DefaultSettings.php.
+
+* Removed TYPO3_tables_script constant
+
+It was possible to define a different base TCA definition file by defining the
+variable typo_db_tables_script in localconf.php. This functionality is removed
+without substitution.
+
+* Restricted access of global variables in ext_tables.php and ext_localconf.php
+
+With the bootstrap refactoring the visibility of ext_tables.php and
+ext_localconf.php was reduced. The files do not run in global context anymore,
+so variables like $TCA should be accessed through $GLOBALS['TCA']. There is a
+compatibility layer, but the core can not guarantee that extensions with
+strange setup does not break.
+
+-------------------------------------------------------------------------------
+Deprecated and removed components
+-------------------------------------------------------------------------------
+
+* Deprecated methods
+
+Deprecated methods that were initially targeted to be removed in TYPO3 4.8/6.0
+have finally been removed. The deprecation log shows which functions were
+declared to be deprecated and will be removed in the next TYPO3 versions.
+
+* Removed classes prior to scheduled deprecation removal
+
+t3lib_BEDisplayLog: This class was used only by the old belog module, its
+functionality is now encapsulated in EXT:belog itself. Since it is very
+unlikely that the class was used by other external extensions, the file was
+removed instead of deprecating it.
+
+* Removed doNotLoadInFE flag
+
+With TYPO3 4.3 the flag doNotLoadInFE flag was introduced in ext_emconf.php
+extension files to hint the core that an extension has no frontend
+functionality. The performance gain of this change in the frontend was minimal.
+The flag is now removed and the according extList_FE setting in localconf.php
+has no effect anymore.
+
+* Removed system extension simulatestatic
+
+The system extension to simulate static documents was removed from the core.
+@TODO: Issue #36025 must be solved and this note here adapted, otherwise the
+removal will be reverted.
+
+* Removed TypoScript option noBlur
+
+The ancient noBlur TypoScript setting for old Browsers (Internet Explorer up to
+version 5.5) was removed without any alternatives. The setting has no effect
+anymore and can be removed from custom TypoScript objects, especially MENU.
+
+* Removed internal history cleanup feature
+
+TYPO3 will not clean the history (table "sys_history") on its own anymore.
+This can lead to a large amount of data in this table. Please consider using
+the garbage collection scheduler task to remove old entries.
+
+* Removed TypoScript resources
+
+The ancient feature to add images and other resources directly to TypoScript
+records is dropped and the handling removed. This old feature - accessible
+from the 'Info/modify' tab in the Template module - was hardly ever used
+and was partly broken.
+If this feature was still in use, it is recommended to not drop the
+resource field from table sys_template during upgrading, fix the using
+TypoScript to refer to resources located in fileadmin or similar directly,
+and afterwards to finally delete the resource field in the install tool.
+
+* Removed page hit logging functionality
+
+Writing log entries to some logfile during frontend page hit was removed.
+There are tons of solutions on the net and on server basis that can do a
+better job than the core implementation ever did. Therefor the complete
+code was dropped and all TypoScript config.stat* options are obsolete.
+
+* Removed compression of javascript files with jsmin
+
+The default compression of certain javascript files in frontend and backend
+with the jsmin library was removed from the core due to license issues. The
+code segment was substituted with a hook, so extensions can now deliver
+compression solutions if needed. In general, it is a good idea to configure
+a webserver to compress javascript and css files on the webserver with gzip.
+
+
+===============================================================================
+Changes and Improvements
+===============================================================================
+
+This will list all changes and improvements between TYPO3 4.7 and 6.0. For
+technical details see ChangeLog included in the typo3_src package.
+
+-------------------------------------------------------------------------------
 General
-=======
-
-       * 4.5 will be the first official TYPO3 release with LTS (long term support)
-       * A Sprite Generator was added. This allows you to create your own
-         sprite files, also core can generate the files if some new icons
-         were added (#15079).
-       * When TYPO3 runs with two different domain names for the FE and the
-         BE, it is now possible to set accordingly different cookie domains
-         using $TYPO3_CONF_VARS['FE']['cookieDomain'] and
-         $TYPO3_CONF_VARS['BE']['cookieDomain'].
-       * Pages of type "Shortcut" can now also link to the parent page, not
-         only to the first or a random subpage.
-       * The media element now has a core wizard for rewriting URLs. This
-         allows the user to copy the URL from browser (eg a youtube URL like
-         http://www.youtube.com/watch?v=pkA9qw80xO0) and use
-         it in the media element as URL. Currently supported platforms:
-         youtube, dailymotion, sevenload, vimeo, clipfish, google,
-         metacafe, myvideo, liveleak and veoh.
+-------------------------------------------------------------------------------
+
+* Extbase and fluid always loaded
+
+The core extensions 'extbase' and 'fluid' are used in core classes like t3lib
+and in several important core extensions. Extbase and fluid are now required
+extensions and always loaded.
 
+-------------------------------------------------------------------------------
+PHP namespaces & TYPO3 autoloader
+-------------------------------------------------------------------------------
 
+* PHP namespaces in the TYPO3 autoloader
 
+The autoloader can now handle fully qualified namespaced class names.
+If you use the fully qualified namespaced class name like
+'\Tx\ExtName\Foo\Bar', the autoloader will find the containing class following
+the extbase naming scheme. The mentioned class will be found if it is located
+in file 'exttensionkey'/Classes/Foo/Bar.php.
+It is also possible to use class names not following the extbase naming scheme
+by providing the "name spaced class name -> file" mapping in ext_autoloader.php.
+
+-------------------------------------------------------------------------------
 Backend
-=======
-
-       * The frameset was removed. This makes the Backend a lot faster. 
-          Now the navigation tree also can be resized. The new backend works
-          using the ExtJS viewport, providing an easy and unified interface
-          to manipulate the content of the different panels.
-       * The user can decide the type of each page created in the
-         "Create multiple pages" Wizard. And the wizard can create more
-         than 9 pages at once.
-       * All system extensions from typo3/mod were moved to real system
-         extensions. These modules are:
-               - Extension Manager
-               - List module
-               - Filelist module
-               - Info module
-               - Access module
-               - Workspace module
-         List module and Extension Manager are set to required extensions,
-         but it is possible to overwrite this setting in localconf.php eg
-         if you want to deinstall the Extension Manger. Make sure you visit
-         the Update Wizard!!!
-       * The recycler was refactored and has now the same skin as the rest
-         of the BE.
-       * DB check -> page tree submodule was removed (module lowlevel).
-       * RSA Auth now works also with special chars.
-       * Clearing cache now is logged (#15305).
-       * A hook now allows postprocessing of filelist and TCEforms files
-         operations (#15192 and #15221). Typical use-case:
-         - Allow editors to upload any picture (e.g., 10 Mpixels) as they
-           don't know how to resize the pictures or do not have the software
-         - Prevent fileadmin to be overflooded with huge pictures which
-           will never be used in their original size
-         - Automatically resize "huge" pictures after the upload
-         Extension using it already:
-         http://forge.typo3.org/projects/show/extension-image_autoresize
-       * New TS config option to disable the "Show secondary options"
-         checkbox (#13797). In User-TS, you can set:
-         options.enableShowPalettes=0 to see this feature in action.
-         Default is still "1" like it used to be.
-
-
-Frontend
-========
-
-       * FE login now allows to show the logout form direct after login.
-
-
-Extbase / Fluid
-===============
-
-       * Fixed Extbase Caching Bug.
-       * All methods trying to find an object by uid now ignore the
-         storagePid. This changes the behavior of argument mapping and the
-         way extbase fetches 1:1 relations. Resolves #5631. You should not
-         experience any negative side-effects of this change, i.e. if your
-         extension worked before, it will definitely after this change.
-         However, it makes the record handling more robust.
-       * Performance improvements in
-         TypoScript::convertTypoScriptArrayToPlainArray.
-       * Fluid contains many new features you might want to start using.
-         There are some changes that require special attention in case you
-         created custom condition ViewHelpers or if you call renderSection()
-         and renderWithLayout() from Tx_Fluid_View_TemplateView.
-       * Check out these ChangeLogs for more details:
-         - typo3/sysext/extbase/ChangeLog.txt
-         - typo3/sysext/fluid/ChangeLog.txt
+-------------------------------------------------------------------------------
 
+* New backend user administration module
 
-Compatibility
-=============
-
-       * See typo3/sysext/fluid/ChangeLog.txt for some breaking changes in
-         Fluid.
-       * See typo3/sysext/extbase/ChangeLog.txt for a fix that might break
-         certain setups (caching bug fixed, might break extbase extensions
-         that setup their own TS configuration manually)
-       * The API for registering additional cache frontends or backends has changed.
-         As of TYPO3 4.5 only the classname needs to be specified in favor of both
-         path to the php file and the classname. Instead the class needs to be
-         registered for autoloading. See #15586 for details.
-         Example:
-         New:
-         $TYPO3_CONF_VARS['SYS']['caching']['cacheFrontends']['myext']='tx_myext_cache';
-         Old:
-         $TYPO3_CONF_VARS['SYS']['caching']['cacheFrontends']['myext']='/path/tx_myext_cache.php:tx_myext_cache';
-
-
-Development
-===========
-
-       * There is a new setting that shows all SQL queries in debug
-         (#15425): $TYPO3_CONF_VARS['SYS']['sqlDebug'] = 2;
-       * Contrib libraries can be replaced now via hook (#15218). This
-         allows to test with updates of these libraries. Demo extensions
-         can be found here:
-               http://forge.typo3.org/projects/typo3v45-projects/files
-       * Catch all ExtDirect Exceptions and show them in the DebugConsole.
-         It now also allows you to call debug() (#15513).
-       * DebugConsole now also catch console-calls from Javascript if no
-         console is available. This allows eg debug prints in browsers
-         having no console like the IE
-       * ExtDirect is available in the frontend now (#15754):
-         http://wiki.typo3.org/ExtDirect
-
-TypoScript
-==========
-
-       * stdWrap now has a new feature: .numberFormat (#13815)
-       lib.myPrice = TEXT
-       lib.myPrice {
-               value = 0.8
-               numberFormat {
-                       decimals = 2
-                       dec_point = ,
-               }
-               noTrimWrap = || $|
-       }
-       # Will result in "0,80 $"
-
-       * GIFBUILDER has a new feature: ELLIPSE (#2049). Example:
-       file  =  GIFBUILDER
-       file  {
-               XY  =  200,200
-               format  =  jpg
-               quality  =  100
-               10  =  ELLIPSE
-               10.dimensions  =  100,100,50,50
-               10.color  =  red
-       }
-
-
-Database API / DBAL
-===================
-
-       * Prepared queries are now part of the TYPO3 database API (#15457).
-         The API is mostly based on PDO's method naming and currently
-         supports SELECT queries. TYPO3 will progressively use this new
-         database API which is cleaner and quicker when using DBAL.
-         Extension authors are encouraged to use it in their own
-         extensions.
-       * Output of SQL parser when dealing with prepared queries is cached
-         for enhanced performances. To activate this caching if you don't have
-         a memcached server:
-         $TYPO3_CONF_VARS['SYS']['useCachingFramework'] = 1;
-         In order to have a much higher cache hit ratio, you should use one
-         or more memcached servers. To activate this enhanced caching, use:
-         $TYPO3_CONF_VARS['SYS']['useCachingFramework'] = 1;
-         $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['dbal'] = array(
-               'backend' => 't3lib_cache_backend_MemcachedBackend',
-               'options' => array(
-                       'servers' => array('localhost:11211', 'otherhost:11211'),
-               )
-         );
-       * DBAL now supports "FIND_IN_SET()" (#14818) function and maps it
-         correct functions in case usage under AdoDB. Using FIND_IN_SET in
-         listQuery() will provide performance improvements in all areas, as
-         this is used in several places (backend and frontend, for example
-         for checking the group list permissions).
-
-
-Workspaces
-==========
-
-       * There is a new Scheduler task for the automatic publication of
-         workspaces (#14994).  If a publication date has been set for a
-         given workspace, it will be published the next time the Scheduler
-         task runs. Note that automatic "un-publication" still does not
-         work. Replaces non-working CLI script
-         "typo3/mod/user/ws/cli/ws_cli.phpsh".
-
-
-Backend skin
-============
-
-       * sprites.css now contains the autogenerated sprites.
-
-
-Speed improvements
-==================
-
-       * Added "compress data" options to DbBackend of the Caching
-         framework (#15141). Enable it like this:
-       $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pages'] =
-       array(
-               'frontend' => 't3lib_cache_frontend_VariableFrontend',
-               'backend' => 't3lib_cache_backend_DbBackend',
-               'options' => array(
-                       'cacheTable' => 'cachingframework_cache_pages',
-                       'tagsTable' => 'cachingframework_cache_pages_tags',
-                       'compression' => TRUE,
-               ),
+The backend user administration module was created from scratch again. The
+interface changed a lot, it is now possible to filter large groups of users
+with certain criteria and to compare specific user information. The code was
+made more flexible to easily cope with different use cases and to be more
+open for future enhancements.
+
+* New extension manager
+
+The extension manager was rewritten to be based on Extbase and thus to have a
+discrete controller and action API. The view utilized jQuery in the client's
+user interface and has been reduced to only contain required functionality
+for (un-)installing or configuring extensions. Uploading extensions to TER
+and directly modifying files of extensions is not supported in the Core
+anymore, but will be available as separate extension tools package in the TER.
+
+* Introducing global categorization
+
+A new global categorization has been introduced, thus any core component and
+extension can utilize this in the backend. An API call can be used to set
+accordant TCA and to create required SQL definition changes during runtime.
+
+See the following example to create a new field categories in a table:
+
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
+               'myextension',
+               'tx_myextension_table',
+               'categories'
+       );
+
+* Support for NULL values in backend forms
+
+In some situations it might become handy to have an "undefined" value, e.g.
+for timestamp fields where "0" has the meaning of the unix timestamp origin
+back in 1970. Therefore a new TCA "eval" subtype has been introduced to support
+that - which will be visualized in the backend with a new "enable field"
+checkbox. Besides that the SQL definition must not have the "NOT NULL"
+statement for that field.
+
+Example to add the "undefined" (NULL value) to the field "myfield":
+
+       $TCA['tx_myextension_table']['columns']['myfield']['config'] = array(
+               'type' => 'input',
+               'eval' => 'null',
        );
-       * Some often used functions of t3lib_div were speed improved.
+
+-------------------------------------------------------------------------------
+Administration / Customization
+-------------------------------------------------------------------------------
+
+* Introducing the File Abstraction Layer
+
+The File Abstraction Layer ("FAL") is used to create accordant database records
+for each file. This was the same file can be used (referenced) in multiple
+elements without having to clone and clutter the file-system anymore. The TYPO3
+Core already makes use of the new File Abstraction Layer, but elderly extensions
+still can use the old way. Besides that, the Install Tool provides several
+upgrade wizards to migrate files to the new structure.
+
+       see http://docs.typo3.org/typo3cms/FileAbstractionLayerReference/
+