TYPO3 v8 is a major new version that provides significant improvements in performance, functionality, and features. It supports the latest PHP 7 for faster performance and includes new features like responsive backend, frontend editing, improved image manipulation, and a brand new form framework. It also improves the developer experience with features like PHP type declarations, standalone Fluid, and Doctrine DBAL for database abstraction. Subsequent versions added additional improvements such as flexible content elements, improved menus and links, and synchronization for multilingual content.
Injustice - Developers Among Us (SciFiDevCon 2024)
AtoZ about TYPO3 v8 CMS
1. 27/10/2017
AtoZ about TYPO3 v8 CMS
nitsan.in/blog/post/atoz-about-typo3-v8-cms/
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.,
1/22
2. 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.,
Cloud integration provided by plateform.sh
Read in detail about TYPO3 CMS cloud integration at here
Source : https://typo3.org/news/article/typo3-and-platformsh-announce-cloud-
readiness-and-tech-preview-of-strategic-integration-ahead-of-t3/
TYPO3 CMS 8 requires PHP 7
2/22
3. 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 (<=>).
Source :
https://www.hongkiat.com/blog/php7/
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 (??)
3/22
4. 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.
Recover pages recursively to top of rootline
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:
PBKDF2 (Password-Based Key Derivation Function 2) is part of RSA Laboratories
Public-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.
Salted Password:
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.
4/22
5. In TYPO3 v8 LTS, PBKDF2 is integrated with the salted password algorithm to make it
more strong.
Form Extension - Directly load form wizard as inline wizard
TYPO3 v8 Features Form
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.
Use new standalone Fluid as composer dependency
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.
Make new content element wizard tab sort order configurable
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
5/22
6. Setup your beautiful Logo & Favicon for TYPO3 backend
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.
TYPO3 v8.1
Added PHP library "Guzzle" for HTTP Requests within TYPO3
Source : https://mondaybynoon.com/guzzle-php-http-client-and-framework/
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.
6/22
7. 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.
Doctrine DBAL
Source : http://blog.joaotnlima.com/2014/06/25/symfony2-and-doctrine/
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:
MySQL
Oracle
Microsoft SQL Server
PostgreSQL
SAP Sybase SQL Anywhere
SQLite
Drizzle
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']
7/22
8. ['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.
8/22
9. TYPO3 v8.2
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.
TYPO3 v8.3
9/22
10. Replace ExtJS category tree with D3 and SVG
Source :
http://www.jolicharts.com/blog/tag/d3-js/
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.
D3.js is a JavaScript library for manipulating documents based on data. D3 helps you
bring data to life using HTML, SVG, and CSS. D3’s emphasis on web standards gives
you the full capabilities of modern browsers without tying yourself to a proprietary
framework, combining powerful visualization components and a data-driven approach
to DOM manipulation.
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'][TYPO3CMSFrontendPluginAbstractPlugin::class]
['pi_list_browseresults'][1463475262] =
VendorExtensionKeyHookResultBrowserHook::class
TYPO3 v8.4
Access TYPO3 backend from your Mobile
10/22
11. Source : https://typo3.org/news/article/releasing-
typo3-v84/
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
11/22
12. Source : https://typo3.org/news/article/releasing-typo3-v84/
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.
Developers can see the documentation and judge the risk in upgradation of the
instance and other important things.
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.
12/22
13. 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
13/22
14. TypeScript (not TypoScript ;) is a free and open source programming language
developed and maintained by Microsoft. It is a strict superset of JavaScript, and adds
optional static typing and class-based object-oriented programming to the
language.
With TypeScript it is possible to compile JavaScript. TypeScript supports definition files
which can contain type information of existing JavaScript libraries.
At the moment the core uses AMD modules for any JavaScript logic in the backend, but
what is in 5 years? maybe we want switch to CommonJS, with TypeScript we can
recompile all modules with a simple change in a configuration file.
But the main reason to switch to TypeScript is the strict typing and oop structure of
the language. We can make use of Interfaces, which is still a missing feature in
JavaScript.
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.
TYPO3 v8.5
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
14/22
15. Integrate Video https://www.youtube.com/watch?v=F9sTAOEcTI0&feature=share
Ready with first base version of CKEditor
It was very important to use lightweight RTE for the backend. The old one was good
but sometime it was taking more time to load. CKEditor is very lightweight and
javascript/jquery based RTE, it is fully customizable with many extra features which
were not included in the old one.
15/22
17. Source : https://typo3.org/news/article/typo3-v86-released/
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
17/22
18. Source : https://typo3.org/news/article/typo3-
v86-released/
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
Source : https://typo3.org/news/article/typo3-
v86-released/
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.
18/22
19. Source : https://typo3.org/news/article/typo3-v86-released/
Link element is improved with showing the page path instead of cryptic internal link so
it will be easier for editors.
Language synchronization feature
Source :
https://typo3.org/news/article/typo3-
v86-released/
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
19/22
20. Source : https://typo3.org/news/article/typo3-v86-released/
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.
TYPO3 8.7
Finally, the TYPO3 8.7 was launched as TYPO3 LTS (Long Term Support), Check the
release notes at here https://typo3.org/?id=972
20/22
21. Source : https://www.andersundsehr.com/blog/typo3-v8-lts-das-kann-die-neue-version-
von-typo3/
Note down some important TYPO3 extensions
General
Some features and components developed for TYPO3 by the Core Team are now
available as extensions, as most projects do not require them.
EXT:compatibility7
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.
EXT:frontend_editing
https://typo3.org/extensions/repository/view/frontend_editing This extension is available
for TYPO3 8.7
EXT:rtehtmlarea
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
21/22
22. CKEditor with no problems from TER.
EXT:form
This extension implements the old form builder functionalities, which were replaced by
the new Form Framework in TYPO3 v8 LTS.
TYPO3 8 Demo
You can take a quick look with TYPO3 v8 demo from TYPO3.org
http://demo.typo3.org/or Launchr https://launchr.com/typo3-cms
Take a quick look for next TYPO3 v9 :)
Roadmap:
Source : https://typo3.org/typo3-cms/roadmap/
Overall Goals
Implement optimized Deprecation strategy
Make upgrades even more easy
Implement Frontend Editing
Implement URL Routing
22/22