TYPO3 v8 is one of the most important LTS version releases in the TYPO3 history. You may call it the Next Generation CMS (Content Management System). It gives TYPO3 the long awaited major boost in functionality and features.
Here we would like to give you an A to Z insights to TYPO3 v8. We’ll tell you in detail about the new improvements & features. We hope, this will help TYPO3 developers/integrators, Editors & Administrators to understand TYPO3 8 in depth.
Here are some quick highlights which makes superb TYPO3 as follows:
For TYPO3 Users:
- Best ever performance (with PHP 7)
- Responsive backend for Mobiles & Tablets
- Frontend Editing (just like Neos CMS)
- Manipulate your image for Mobile, Desktop & Tablet
- CKEditor - the better Rich Text Editor (RTE)
- Brand new Form Framework
- so on.,
For TYPO3 Developers:
- PHP 7, Next generation code development
- Doctrine DBAL (support more database)
- Standalone Fluid
- Compatibility Layer (EXT:compatibility7)
- Code Cleanup & Bug fixing
- so on.,
Read in detail about TYPO3 CMS cloud integration at here
Major change of TYPO3 v8 is to support latest PHP 7. So we can adopt all the features of PHP 7 in our latest TYPO3.
PHP 7 gives a great performance improvement to the whole TYPO3 system. The new all-time record for a full cached page call in the frontend is below 7 milliseconds now, which is approximately 40% faster compared to running the very same website with PHP 5.5.
PHP 7 gone crazy with the latest release changes like introducing data types, function’s return types and with new operators like spaceship (<=>).
Here are mentioned main PHP 7 features which can help TYPO3 to work faster:
- Improved performance: PHP 7 is up to twice as fast as PHP 5.6
- Significantly reduced memory usage
- Abstract Syntax Tree
- Consistent 64-bit support
- Improved Exception hierarchy
- Many fatal errors converted to Exceptions
- Secure random number generator
- Removed old and unsupported SAPIs and extensions
- The null coalescing operator (??)
- Return and Scalar Type Declarations
- Anonymous Classes
- Zero cost asserts
This all are widely used in TYPO3 to make its performance better. There are many other reason to choose PHP 7 for TYPO3 v8.
The Recycler now supports the recursive recovery of deleted pages to the top of the rootline. This feature is available for admin users only due to internal permission restrictions.
Security: Add support for PBKDF2 to saltedpasswords
PBKDF2 (Password-Based Key Derivation Function 2) is part of RSA LaboratoriesPublic-Key Cryptography Standards (PKCS) series, specifically PKCS #5 v2.0, also published as Internet Engineering Task Force's RFC 2898. It replaces an earlier key derivation function, PBKDF1, which could only produce derived keys up to 160 bits long.
Using salted password, you get rid of plain-text passwords or MD5 password hashes for user records in TYPO3. MD5 hashes are no longer safe to use for passwords. With salted hashes, an attacker needs to create separate rainbow tables for each salt. The salt itself is different for each stored password hash. So retrieving plain-text passwords for all user records in a TYPO3 installation is quite expensive in terms of complexity.
In TYPO3 v8 LTS, PBKDF2 is integrated with the salted password algorithm to make it more strong.
The wizard of EXT:form is loaded directly as inline wizard. There is no need anymore to save and reload the newly created content element in order to be able to open the wizard. This is a huge usability improvement. Additionally there is no need to provide individual doc headers. Instead, the centralized doc headers of the module template API are used.
The Fluid rendering engine of TYPO3 CMS is replaced by the standalone capable Fluid which is now included as composer dependency. The old Fluid extension is converted to a so-called Fluid adapter which allows TYPO3 CMS to use standalone Fluid with the many new features this facilitates. Standalone fluid is also can be used outside of the TYPO3, it can be used with any CMS, Framework or core PHP. It is very nice feature to release it as a standalone so anyone can take its benefit in any Non-TYPO3 instances.
It is possible to influence the order of the tabs in the new content element wizard by setting before and after values in Page TSconfig:
mod.wizards.newContentElement.wizardItems.special.before = commonmod.wizards.newContentElement.wizardItems.forms.after = common, special
The Backend Logo in the upper left corner can now be configured in the Extension Configuration of EXT:backend within the Extension Manager. A relative path to the TYPO3 installation ("PATH_site"), e.g. "fileadmin/myfile.jpg" or a path to an extension.
Added PHP library "Guzzle" for HTTP Requests within TYPO3
Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services(http://docs.guzzlephp.org/en/latest/).
- Simple interface for building query strings, POST requests, streaming large uploads, streaming large downloads, using HTTP cookies, uploading JSON data, etc...
- Can send both synchronous and asynchronous requests using the same interface.
- Uses PSR-7 interfaces for requests, responses, and streams. This allows you to utilize other PSR-7 compatible libraries with Guzzle.
- Abstracts away the underlying HTTP transport, allowing you to write environment and transport agnostic code; i.e., no hard dependency on cURL, PHP streams, sockets, or non-blocking event loops.
- Middleware system allows you to augment and compose client behavior.
The PHP library Guzzle has been added via composer dependency to work as a feature rich solution for creating HTTP requests based on the PSR-7 interfaces already used within TYPO3.
The Doctrine database abstraction & access layer (DBAL) offers a lightweight and thin runtime layer around a PDO-like API and a lot of additional, horizontal features like database schema introspection and manipulation through an OO API.
The following database vendors are currently supported:
- Microsoft SQL Server
- SAP Sybase SQL Anywhere
Doctrine DBAL has been added via composer dependency to work as a powerful database abstraction layer with many features for database abstraction, schema introspection and schema management within TYPO3.
All connections configured below $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections'] are accessible using this manager, enabling the parallel usage of multiple database systems.
By using the database abstraction options and the QueryBuilder provided SQL statements being built will be properly quoted and compatible with different DBMS out of the box as far as possible.
Simplify cache clearing
The cache clearing system has been simplified by removing options in cache clear menu and install tool. The cache clear menu in the backend contains now only two options:
- Flush frontend caches Clear frontend and page-related caches, like before.
- Flush all caches Clear all system-related caches, including the class loader, localization, extension configuration file caches and opcode caches. Rebuilding this cache may take some time.
Within the install tool the "Clear all cache" button will now also clear the opcode caches if possible.
Clear cache entry in context menu
A new entry has been added in the context menu of the page tree to be able to clear the cache of the selected page. The entry is located inside "Page Actions".
Property visibility to DebuggerUtility::var_dump
It is now possible to see the property visibility while debug object using the DebuggerUtility::var_dump() function. It is very helpful for developers because we can see the property accessibility directly from the debug output and the errors like ‘Property is not publically defined’ will be avoided directly.
Ogg, flac and opus support
.ogg, .flac, .opus formats are now supported by the TYPO3 FAL upload control in backend. We can use this open formats within TYPO3 now.
Replace ExtJS category tree with D3 and SVG
The Backend ExtJS category tree (renderType selectTree) has been replaced with one based on D3.js and SVG. Tree implements a 'virtual scroll' pattern, meaning that it renders only as many nodes as fit in the viewport.
Hook to register custom result browsers in AbstractPlugin
The hook allows registering custom result browser implementations. This approach allows to override the default implementation of AbstractPlugin::pi_list_browseresults() for either all extensions or only for specific ones.
The hook may be registered in ext_localconf.php:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Frontend\Plugin\AbstractPlugin::class]['pi_list_browseresults'] = \Vendor\ExtensionKey\Hook\ResultBrowserHook::class
Access TYPO3 backend from your Mobile
The fine line between "responsive" and a mobile-ready version has been resolved, as the navigation menu and the full backend functionality adapts not just for tablets, but adapts based on the screen resolution to have the best user experience depending on the device.
Access flexform value via TS
It is now possible to access flexform fields in the TypoScript. We can now explore flexforms to use in TypoScript and it impacts on some custom solutions of CEs.
Improve the TYPO3 Upgrade Procedure
The install tool, which is also a heavily used feature during updates between TYPO3 versions, has received some more beauty, basically finding all documented changes with a cool filter to show what is relevant for an integrator, extension author or site owner. Although this is already pretty cool, stay tuned for even better features to make migrations even easier between TYPO3 versions!
Upgrade Analysis - Provide listing of documentation files
The install tool now shows all the documentation files that were delivered with the core in the section Upgrade analysis. All files can be read inline, but there is no parsing, plain .rst is shown to the user.
The install tool features a new main entry point that lists the documentation files shipped with the core. Filtering by tags provided in the documentation files helps to find interesting changes.
Display TCA migration messages in Install Tool
Display the TCA migration message(s) in the Install Tool. You are now able to show all TCA migration messages from within the Install Tool.
Dump Class Loading Information UI in Install Tool
It is now possible to dump class loading information in the install tool. Its really needed, Otherwise developers needs to clear autoload folder from typo3temp folder or using a command line way, Its really very hard to autoload new classes if we don’t have folder access on the server or no command line access. Users who are not familiar with the command line can now trigger a dump of class loading information in install tool.
Introduce TypeScript for the core
Deprecation of TYPO3_DB occurrences
The TYPO3_DB shorthand functionality has been removed for most of the TYPO3 Core PHP classes.
Calling $GLOBALS[TYPO3_DB] is still possible but discouraged. Calling any of the methods above will trigger a deprecation log entry and any TYPO3 instances with references to TYPO3_DB or references to the occurrences mentioned above.
Developers can use the ConnectionPool and the QueryBuilder classes to achieve future-proof and proper database abstraction for future TYPO3 versions.
The brand new form framework
The EXT:Form is now turned into the form framework with nice backend module and form wizard. It is now possible to create multiple forms at one place and use it in whole instance and every domain. When you create any form using the module, the settings will be saved into the fileadmin/user_upload/form-title.yaml So you can change settings from there directly without opening backend module. But it may be harmful. Have a look at the screenshots
Ready with first base version of CKEditor
New image manipulation wizard
This feature has been heavily extended in v8.6: Most importantly, the image manipulation wizard now allows multiple crop variants for a single image. This allows editors to show different image areas according to the display size in the frontend.
Flexible Menu-based content elements
The menu are important for editors, so TYPO3 guys provide dedicated separate section for menus which covers everything like Pages, sitemap, related pages etc.,
Improved link element and validation
For the complex form, It is always hard to know where are the errors/validation so TYPO3 guys smartly setup this validation icon which will help to editors.
Link element is improved with showing the page path instead of cryptic internal link so it will be easier for editors.
Language synchronization feature
Multilingual translation get more improvements with Language synchronization, because a new wizard allow translators to select if field of localized record has a dedicated value or it should inherit the value of its language parent.
Improved scheduler module
Fluid Styled Content & CSS Styled Content refactoring
Since a time, it was quite trouble to-do migration between CSS Styled Content (CSC) to Fluid Styled Content (FSC), Now it is easy to making migrations even easier and provide new possibilities for more cost-efficient integrations. CSC is now fully compatible with FSC and shares the same capabilities to make a transition as easy as possible. To focus even more on the development of FSC in the next major version of TYPO3, CSC is now deprecated and in maintenance mode.
Finally, the TYPO3 8.7 was launched as TYPO3 LTS (Long Term Support), Check the release notes at here typo3.org
Some features and components developed for TYPO3 by the Core Team are now available as extensions, as most projects do not require them.
https://www.andersundsehr.com/blog/typo3-v8-lts-das-kann-die-neue-version-von-typo3/Compatibility Mode for TYPO3, It will help during the upgrade procedure from TYPO3 7 to 8.
https://typo3.org/extensions/repository/view/frontend_editing This extension is available for TYPO3 8.7
https://extensions.typo3.org/extension/rtehtmlarea/Rich Text Editor "HtmlArea": The previous RTE solution is still available for systems with complex requirements or configurations, specifically targetted for HtmlArea, and can be installed in exchange for CKEditor with no problems from TER.
This extension implements the old form builder functionalities, which were replaced by the new Form Framework in TYPO3 v8 LTS.
Implement optimized Deprecation strategy
Make upgrades even more easy
Implement Frontend Editing
Implement URL Routing