TYPO3 v12.2—Around The World

Categories: Development, TYPO3 CMS Created by Michael Schams
The first sprint release this year is out! TYPO3 version 12.2 comes with backend UI improvements in the Filelist module, a new API that provides up-to-date country details, a basic implementation of a message bus/queue system, and much more. Read on to learn about the key changes of the new sprint release.

The TYPO3 code sprint in Hamburg a few weeks ago resulted in some great new features under the hood. TYPO3 version 12.2 introduces a message bus and message queue, improvements for internationalization, and multi-language support; along with backend UI improvements in accordance with the development roadmap.

Let’s have a closer look at the main changes of the new release. Detailed technical insight with more in-depth information is available at docs.typo3.org.

Key Changes in TYPO3 Version 12.2

Filelist Backend Module

The backend module File ➜ Filelist received several enhancements in previous TYPO3 v11 and v12 releases. In TYPO3 version 12.1, we introduced the new tiles view that shows larger thumbnails and fewer details of the assets, for example. In this release, we worked even more improvements into the backend module. These are going to be especially valuable for editors working with loads of files and folders.

Drag and Drop Items Into the Tree

Transferring items from one folder to another is now much more intuitive thanks to TYPO3’s new capability to move and copy files and folders through drag and drop:

In previous TYPO3 versions, you typically used the clipboard function to copy/move items between folders. In TYPO3 version 12.2, you can click on an item in the file list, drag it to the folder tree then drop it into the target folder. One quick action!

This also works with multiple items. You can select multiple files or folders, and move/copy them through the same drag and drop function.

Creating Folders

If you work a lot with files and folders you will be happy to hear that creating new folders has become more elegant in TYPO3 version 12.2. Instead of opening a new page, the module now opens a modal window where you enter the name of the new folder. You can also browse through the folder tree on the left-hand side to easily and quickly select a different parent folder.

The new way of creating folders in a modal window is straightforward and incredibly fast. So much so, that the option to create multiple folders at once has been removed. Once the modal window closes, the file list automatically refreshes to reflect the latest changes.

Message Bus and Queue

TYPO3’s system architecture consists of several components such as modules and APIs. To let components operate and communicate in a unified manner, TYPO3 version 12.2 now features a basic implementation of a message bus based on the Symfony Messenger. In simplified terms, a component sends a message to a message bus. The message bus receives the message, optionally stores it in a queue, and forwards the message to a handler.

TYPO3’s default behavior is to process messages synchronously. A simple configuration change switches the system to asynchronous transport. In this mode, messages that are stored in the queue can be processed at a later time. This is tremendously handy if a task takes some time to complete and the system cannot or does not need to wait for the task to finish.

Here are two practical examples where developers and solution architects can benefit from the message queue in TYPO3.

Think of a TYPO3 installation that uses Workspaces—where every content change requires approval before it can be published. When content moves from the editing to the approval stage, all users with the role of approver are notified via text message to their mobile phone. The project requires TYPO3 to use an external system to send the notification. It takes several seconds for this system to process each message and send a response to TYPO3. Sometimes the external system is overloaded and rejects new messages. With a message queue, developers can build a robust solution to handle these challenges. TYPO3 can put the notification in an asynchronous queue without waiting for a response. The handler processes the scheduled jobs that are stored in the queue, sends the notifications to the external system, and can even retry failed deliveries.

Another use case is for triggering processes upon file upload. Think of a project where strict regulations require that when a PDF file is uploaded through the File ➜ Filelist module, a copy of the document is archived in remote, long-term storage. Another system then uses AI to extract the content of the PDF and generates a summary of the content. With all of these processes triggered at the upload time, the backend user’s request might take a long time and could run into PHP timeouts. TYPO3’s message queue could handle these in the background and even raise an alarm if too many attempts to archive a file in the remote storage fail.

A wide range of further use cases exist where synchronous or asynchronous message queues offer great opportunities. Review the changelog to learn how you can use the message queue.

By the way, the TYPO3 Core developers rebuilt the “stage change notifications” of the Workspaces module as a message and a corresponding handler.

Internationalization

TYPO3’s out-of-the-box multilingual capabilities make it easy for integrators and developers to meet complex global content requirements. TYPO3 version 12.2 comes with two improvements for working with internationalization and localization of content.

CountryProvider API

Internationalization and multi-language support often requires developers to create country lists programmatically, and to determine the flags and languages. A new API in TYPO3 version 12.2 exposes a list of countries based on the ISO 3166-1 standard. You can use the CountryProvider API to retrieve localized country names and related data such as standardized ISO codes, the Unicode representation of the flags, and more.

On top of that, a new FormCountrySelect-Viewhelper for Fluid lets you render dropdown items for forms:

The data exposed by the CountryProvider API is based on the ISO code repository by the Debian project. Therefore, we are confident that the country list in TYPO3 remains up-to-date.

Multi-level Language Fallback

A TYPO3 site can offer several frontend languages. With multiple languages activated, integrators can configure a fallback chain (also known as “overlays in mixed mode”). This means that if a translation is not yet available, the system automatically falls-back to content in another language.

Although this function has been available on a page basis, TYPO3 now also supports the fallback mechanism on any content.

Security Improvements

Many organizations and institutions are required by law to comply with certain IT standards and security/privacy frameworks—and there is a good reason for this. As an enterprise-level software, TYPO3 supports site operators to comply with these requirements.

For example, we introduced configurable password policies in TYPO3 version 12.0 to meet modern compliance alignments. Since TYPO3 version 12.2, the global default policy is taken into account when the initial admin user is created during the system installation. The policy enforces a strong password  regarding the minimum length, upper and lower case characters, digits, etc.

We plan to roll out further changes to harden the security in this regard in the upcoming releases before the LTS-release in April this year.

Other Changes

We have streamlined some legacy path and file names in previous TYPO3 v12 sprint releases. These are, for example:

  • “LocalConfiguration.php” is now named “settings.php”
  • “AdditionalConfiguration.php” is now named “additional.php”

In TYPO3 version 12.2, we moved the file “ENABLE_INSTALL_TOOL” to a new location in the file system. Read more about this change in the changelog. You don’t need to worry if your systems or deploy processes rely on the old location. TYPO3 continues to check the previously used path “typo3conf/ENABLE_INSTALL_TOOL” as a fallback option to ensure backward compatibility.

Site configurations are stored in YAML files and located in a folder called “sites/” in the file system. Many settings of the site configurations are not editable and not even visible in the TYPO3 backend.

To let site administrators look up the current settings without the need to access the file system directly, we added two items to the dropdown menu in the System ➜ Configuration backend module (system extension “lowlevel”):

  • “Sites: TCA configuration”
  • “Sites: YAML configuration”

System Requirements, Support, and Maintenance

The system requirements for TYPO3 version 12.2 remain the same as outlined in the article “Get Ready for TYPO3 v12”. This includes PHP version 8.1, for example. Our support and maintenance promise also remains the same. Read more about the requirements and dependencies on get.typo3.org.

Download and Installation

You will find all details about the release and how you can 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.

Feature Freeze Ahead!

The next milestone on our roadmap is TYPO3 version 12.3, scheduled on 28 March 2023. This release will mark the feature freeze for the v12 cycle. From that point to the final LTS release, the Core Team will focus on testing, polishing, and refinement. If you want to see your code contributions in TYPO3 v12 LTS, now is the best time to submit them (see the TYPO3 Contribution Guide).

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