TYPO3 v12 LTS—Here To Save The Day

Categories: Community, TYPO3 CMS Created by Michael Schams
We are thrilled to announce the release of TYPO3 v12 LTS. This version is our new flagship, and as a long-term support release, it will receive security updates for at least three years. Read on to learn more about the latest milestone in the TYPO3 history.

More than 140 highly motivated developers contributed to the TYPO3 v12 LTS code base in 569 days since November 2021. Apart from the developers, talented experts from many different knowledge areas also shaped the new release. This effort resulted in over 3250 Git commits and 216 new features, ensuring that every goal we set for the LTS release was delivered on time.

TYPO3 is once again a technically matured and jam-packed open-source enterprise content management system of the top class. This article only gives a glimpse into the new amazing features and countless improvements. Detailed technical insight with more in-depth information is available at docs.typo3.org. Also, check out the TYPO3 v12 LTS release material.

Highlights and Key Features

Integrations

Operating several applications, each focusing on a specific aspect of the business process, is common in an enterprise environment. These systems need to exchange data in a secure and unified way. Modern agile development processes include CI/CD pipelines to test, build and automatically deploy applications, for example. Solutions like this require secure system interfaces that follow a standardized protocol.

Webhooks are a commonly used concept to achieve precisely this, and TYPO3 v12 LTS offers solutions to set up incoming and outgoing webhooks. External systems can send requests to TYPO3 to trigger pre-defined actions and responses. In addition, a new backend module lets you configure incoming webhooks as “Reactions”. This feature makes it super-easy to integrate TYPO3 in low-code environments and add the system to a deployment or data pipeline, for example.

Reactions go hand-in-hand with outgoing webhooks. A typical real-world example of this feature is to notify external systems about changes inside TYPO3. The other system and TYPO3 remain self-sufficient and independent but stay in-sync by communicating with each other. Outgoing webhooks can notify external systems in real-time of events and trigger follow-up actions.

Practical use cases for incoming and outgoing webhooks are endless. Combine webhooks with workflow automation tools like Zapier or trigger a command to clear the caches of a content delivery network (CDN). You can now build complex solutions to integrate remote systems and applications without writing a single line of PHP code.

Backend Enhancements

Log in to the backend of TYPO3 v12 LTS and browse around. You will notice a more modern visual look and feel in many places and a cleaner user interface across the backend.

We simplified and optimized the page module for readability. Managing files has also become more accessible through the new tiles view and drag-and-drop functions. In addition, search results appear while you type, finding the needle in the haystack faster.

Editors use the TYPO3 backend to create and edit content for a TYPO3 site. The new CKEditor release, which we upgraded to the latest stable version 5, comes with new features boosting their productivity. With the new version, we can also say goodbye to iframes when it comes to the editing of rich text.

Integrators will love the limitless customization options of the backend. Be it the action buttons in the file list, the simplified settings for managing users and their permissions, or the reworked backend modules for editing and managing TypoScript and Page TSconfig that you now find in the backend under Site Management.

We also extended the insights that the backend module System ➜ Configuration provides. You can now look up information about the Symfony Expression Language Providers, TCA configuration and YAML configuration.

Superpowers Under the Hood

We boosted TYPO3’s superpowers that are not visible but work under the hood. For example, the outgoing webhooks mentioned above leverage a message bus and message queue that we built into the TYPO3 Core. Based on the Symfony Messenger, the message bus provides a streamlined way that enables components to communicate in a unified manner. The queue system even features an asynchronous mode for efficiently handling time-consuming tasks that can run independently.

The TYPO3 Core Team also performed a significant rework of the TypoScript and Page TSconfig functions resulting in a new TypoScript syntax parser that is astonishingly fast, more robust and more logical.

Changes for Developers

Software developers will get excited when they hear what the new major TYPO3 release comes with.

First and foremost, PHP version 8.1 is a new minimum requirement to run TYPO3. This version has improved type safety, read-only properties, first-class callable syntax, fibers and intersection types, among other enhancements. TYPO3 v12 LTS also supports the newest and latest PHP release: version 8.2. This release includes read-only classes, additional stand-alone types, deprecated dynamic properties, and more. Most importantly: both PHP releases deliver better performance.

We upgraded third-party libraries and dependent packages to their latest versions if practical. A substantial update concerns the Database Abstraction Layer (DBAL). TYPO3 v12 LTS uses Doctrine DBAL version 3. This version of the DBAL went through major internal refactorings by separating Doctrine’s internal driver logic from PHP’s native PDO functionality.

The “glue” between the database layer and the FormEngine, which renders table rows in the TYPO3 backend, is the Table Configuration Array (TCA). TYPO3 v12 LTS features several new TCA types such as email, password, link, number, datetime, color, file, passwordGenerator and more.

Let’s dive deeper into the internals and look at the most significant change in the Extbase programming framework in TYPO3 v12 LTS. Experienced TYPO3 developers are likely familiar with “magic functions”. The characteristic of these functions is that their concrete implementation is determined at runtime. No black magic involved, just an intelligent part of the Extbase framework. As convenient as magic methods are, they come with some drawbacks. False warnings in modern IDEs or failing static code analysis are two examples.

We introduced a few new methods in TYPO3 v12 LTS, addressing these challenges. They provide the same functionality as magic methods and coexist with the old methods for the time being: findBy(), findOneBy() and count(). In addition, the new methods allow for multiple comparisons (called “constraints”), and their names follow the naming convention of the object-relational mapper Doctrine ORM.

Internationalization

TYPO3’s out-of-the-box multilingual capabilities make it easy for integrators and developers to meet complex global content requirements.

With multiple website languages activated, you can configure a fallback chain (“overlays in mixed mode”). If a translation of a page or content element is not yet available, the system automatically falls back to content in another language.

You can now set up a new language in the blink of an eye. TYPO3 v12 LTS offers configuration presets that let you easily create a new website language with one click. Even the backend received an upgrade. For languages such as Arabic, the user interface can now render text from right to left!

We also added a Country API to TYPO3 v12 LTS, allowing developers to retrieve localized country names and related data such as standardized ISO codes, the flags’ Unicode representation and more. Creating country lists programmatically and determining flags and languages has never been so easy. Leveraging the API in combination with the new FormCountrySelect-Viewhelper for Fluid lets you render dropdown items for forms.

Strengthening the Security Posture

Benni Mack, TYPO3 Core Lead, points out: “Security and stability are TYPO3ʼs top priorities.” This stance is crucial for an enterprise-level content management system like TYPO3. We raised the bar in TYPO3 v12 LTS and implemented several modern techniques to harden the system’s security.

With the introduction of Content Security Policies (CSP) in TYPO3, for example, we tackle security vulnerabilities that often occur due to the lack of proper encoding of user-submitted content. This added layer of security aims to detect and mitigate certain attack types, such as cross-site scripting (XSS) and data injection.

A new backend module Admin Tools ➜ Content Security Policy lets you review the recent potential CSP violations in the frontend and backend, including suggestions on how to resolve the issue.

By supplying a URL of a remote system, TYPO3 can also report CSP violations to an external service.

In addition to the CSP, TYPO3 v12 LTS sends a set of common HTTP security headers by default when users access the backend.

To strengthen the security posture to protect user credentials, TYPO3 now features configurable password policies. The system considers the global default policy, for example, when the initial administrator user is created during the system installation.

System Requirements

PHP version 8.1 is a new minimum requirement to run TYPO3. This version will receive security updates until November 2024. TYPO3 v12 LTS also supports PHP version 8.2. This version gets security support for an additional year until December 2025.

With the Database Abstraction Layer (DBAL) Doctrine version 3, TYPO3 now supports the following database engines and versions:

  • MySQL version 8.0 or higher
  • MariaDB version 10.3 or higher
  • PostgreSQL version 10.0 or higher
  • SQLite version 3.8.3 or higher

TYPO3 v12 LTS runs on a wide range of well-known web servers, including Apache httpd, Nginx, Microsoft IIS and Caddy Server.

Read more about the system requirements in the official TYPO3 documentation.

Support and Maintenance

As an LTS release (long-term support), TYPO3 v12 LTS will receive bug fixes for 1.5 years from the release date. After that, free security updates are provided for a further 1.5 years. This results in a total support period of 3 years.

On top of the 3-years free support and maintenance, the TYPO3 GmbH offers extended long-term support (ELTS) for up to three additional years. This means that TYPO3 v12’s ELTS version will be supported until April 2029. That’s up to six years of browser compatibility, security fixes and compliance with IT security laws for your enterprise CMS.

Download and Installation

With a thoroughly tested system core and over 150 third-party extensions already compatible with TYPO3 v12 LTS, you can upgrade your site or kick-start a new project today. Third-party extensions also include verified extensions such as News, Mask, LUX, Container, Headless and more.

You will find all the details about the release and how to download and install TYPO3 at get.typo3.org. Detailed installation instructions are documented in the Installation Guide. We recommend using Composer to set up your TYPO3 environment (Composer version 2.1 or higher).

Additional contributors for this article
  • Art work : Markus Schwarz
  • Copy Editor : Felicity Brand