TYPO3 Version 11.0—Ready for Liftoff

Categories: Development, TYPO3 CMS Created by Michael Schams
Buckle up and get ready for an exciting journey! Today, we launched TYPO3 version 11.0. This release is the first of five planned sprint releases of the TYPO3 v11 series, and an important first step toward the next LTS (long-term support) version in 2021. Read on to learn more about the release and our flight plan. You won’t be disappointed.

Since clean-up tasks are the main focus of every “dot-zero” release, it is not surprising that a large number of breaking changes have been introduced in TYPO3 version 11.0. For this article, I picked a few highlights of what you can look forward to in the latest version.

Let’s start with a quick summary of our overall plans for the TYPO3 v11 series. As a reminder: what follows is our agenda for the months until October 2021. Although the just-released version 11.0 lays the foundation to achieve these goals, we plan to add these features in upcoming sprint releases.

The TYPO3 v11 Goals

We can proudly claim that the 11th major version of the open-source content management system TYPO3 indicates its maturity and ongoing success. (Actually, it’s technically the 8th version since we started with version 3 and skipped version 5, but that’s another story.)

With a strong focus on accessibility for the TYPO3 backend, we aim to improve the experience for editors and administrators in TYPO3 v11 even further. From a technical point of view, we set streamlined authentication as an important goal; several changes and improvements have been made under the hood in version 11.0 already.

Benni Mack (TYPO3 Core Project Lead) shared the overall goals, minimum technical requirements, and planned release schedule in his article “A First Glimpse of TYPO3 v11” a few weeks ago. Based on his overview, the main features we will likely see in the next few months are:

  • Link sharing and deep linking for the TYPO3 backend
  • Multi-factor authentication (MFA)
  • Improved TYPO3 backend experience
  • Improved Extbase framework
  • Improved authentication process

As part of TYPO3 v11 development, several libraries that TYPO3 depends on will be (or already have been) updated:

  • Doctrine DBAL version 3.0
  • Symfony version 5.2+
  • Bootstrap version 5 (for the TYPO3 backend)
  • Composer version 2 (for composer-based installations)

You find some further details about the system requirements of TYPO3 v11 later in this article.

Now, let’s dive into the most significant changes, updates, and improvements of the TYPO3 version 11.0 release. You will see that we have a little for everyone—integrators, developers, editors, and, of course, end-users.

Key Changes in TYPO3 v11.0

In General

By following a strict deprecation policy, we ensure that TYPO3 is and remains an exceptionally stable, robust, and reliable enterprise content management system. Except in rare circumstances, we do not introduce breaking changes (like new APIs or removed components) in minor or bugfix releases. As I pointed out before, a “dot-zero” release allows us to bring in new libraries and modern concepts. Streamlining APIs and adopting even more well-known and established software standards are also opportunities we don’t want to miss in the first sprint release.

Bootstrap 5 in the TYPO3 Backend

As part of a visual refresh, we switched the TYPO3 backend from Bootstrap 3 to 5. Initially released in 2011, Bootstrap is the world’s most popular frontend open-source toolkit today. The decision to use version 5 (which is still a beta-version at the time of writing) puts TYPO3 at the forefront of modern content management systems from a UI perspective.

Backend users won’t need to learn how to use a new user interface with Bootstrap 5. They might, however, notice a few minor usability changes in TYPO3 v11.0. The new Bootstrap version also adds a few accessibility improvements to the TYPO3 backend.

Clean-up old Redirects

Redirects typically aim to forward your website visitors from an old to a new destination—for example, a page. In many cases, these redirects are only required for a certain amount of time. Site administrators can now configure TYPO3 to automatically remove redirects based on specific criteria, for example, their age, domain, or hit count. Backend users (e.g., editors with appropriate access privileges) can mark redirects as “protected” to prevent their deletion.

Session Handling

As part of streamlining the authentication process I mentioned earlier, we reworked some components of the TYPO3 Core responsible for frontend and backend user authentication. In previous versions of TYPO3, the user session handling was part of the user authentication components of the TYPO3 Core. We reworked these in TYPO3 v11.0 and separated the user object, the authentication process, and the session handling.

We created a dedicated session handling API that offers core and extension developers centralized handling of sessions. The new UserSession object contains all session-related data. Developers should use the UserSessionManager to create new sessions.

 You find more details in the TYPO3 documentation.

User Authentication

If you’re an extension developer whose code uses an authentication component, you are encouraged to keep an eye on related PHP classes—for example, the class  “AbstractUserAuthentication” which received a software redesign in preparation for the multi-factor authentication (MFA).

Workspaces

The “Workspaces” feature is one of TYPO3’s unique selling points. Workspaces let editors work collaboratively on versioned content of a TYPO3 site and review/preview pages before publishing them. At the most basic level, you can configure permissions so that backend users can only edit content in an isolated workspace. Every change requires a supervisor’s approval, which gives you full control of which content goes live and when. However, TYPO3’s Workspaces are often overlooked—and that’s what we aim to change!

In TYPO3 v11.0, we started to improve the underlying code and addressed some conceptual issues. In further releases, we will stabilize existing functionality, update the documentation, improve the user experience, and introduce new features.

Read more about the initiative to make Workspaces shine in our article “Workspaces - One of TYPO3’s Most Underused Features”.

PSR Standards

I cannot say often enough how vital unified standards are. Using coding guidelines and following official recommendations, we make sure that the TYPO3 Core architecture meets the highest standards and uses state-of-the-art technologies. The PHP Framework Interop Group issues and publishes exactly such standards: the well-known PSR standards. We already adopted a wide range of them and introduced the PSR-11 ContainerInterface, PSR-14 EventDispatchers, and PSR-15 Middlewares in previous TYPO3 versions.

PSR-7 and PSR-17 are not new to the TYPO3 world either. These standards describe common interfaces for representing HTTP messages. In simple terms: how PHP applications receive and generate HTTP requests, and how they should respond to them.

We continuously improve the TYPO3 Core according to these standards and have made PSR-7 Request/Response objects available for extension developers and integrators in even more places—for example, in custom-developed content objects (“cObjects”).

Extbase Framework

This initiative also affects the Extbase framework. To comply with PSR standards, controller actions should return an instance of the “Psr\Http\Message\ResponseInterface” from now on:

It may sound like a massive task for extension developers to update their existing code. However, the advantages are apparent. Developers will have much more control over the responses and, using the ResponseFactory, it is easy to adjust the response even further. Have a look at the change log to learn more and look up some examples.

It is worth mentioning that the typical old ResponseInterface behavior (of not returning anything) triggers a deprecation warning in TYPO3 v11, which you find in the logs. Still, it will continue to work for the time being and there is enough time to update your code before it produces an error in TYPO3 v12.

Fluid Widgets

A particular type of ViewHelpers in Fluid is “widgets”.  Logically they are part of the view, but widgets have their own controller and view. Strictly speaking, the technology violates the design pattern “separation of concern” and causes problems using PSR-7 request objects in Extbase.

Therefore, we decided to drop Fluid ViewHelper widgets, and TYPO3 v11 does not support them anymore. A prominent use-case of a Fluid widget in the TYPO3 Core is the <f:paginate...> ViewHelper. We advise developers to review their extensions and to use the Pagination API instead.

Dependency Injection

Developers should also observe the development of Extbase’s Dependency Injection (DI). We plan to deprecate and remove the current implementation in Extbase and use the feature offered by the TYPO3 Core instead. This solution is based on the PSR-11 standard and incorporates Symfony’s industry-proven DI concepts.

Upgrades Made Easy

A quick and straightforward upgrade path from older versions of TYPO3 is one of the goals defined in the overall strategy for v11.

We strongly recommend using TYPO3’s Extension Scanner (Admin Tools → Upgrade → Scan Extension Files) to identify possible issues before executing the upgrade. Typical problems include custom-developed extensions using APIs which have been deprecated or removed. The Extension Scanner provides useful and comprehensive instructions for developers on how to update the code.

Also, make sure that your hosting environment meets the system requirements listed below.

If you upgrade from TYPO3 v9 or v10 to v11, use the Upgrade Wizard as described in the Installation and Upgrade Guide. This critical step of the upgrade process takes care of various migration tasks, such as content updates and global configuration changes, if required.

System Requirements

TYPO3 v11 requires PHP version 7.4 or higher. The Doctrine DBAL used by the TYPO3 Core ensures that a wide range of database servers and database engines are supported. This includes MySQL version 5.7.9 or later, MariaDB version 10.2.7 or later, PostgreSQL version 9.4 or later, Microsoft’s SQL Server 2012 or later, and SQLite version 3 (bundled with PHP).

TYPO3 v11 supports all modern web servers, including Apache 2.4, Nginx, and IIS.

Users can access the backend of TYPO3 v11 with all modern browsers such as (but not limited to) Mozilla Firefox, Microsoft Edge (Chromium-based only), Google Chrome and Chrome for Android, Safari, and Mobile Safari.

Support and Maintenance

We support each sprint release (TYPO3 v11.0 to v11.4) until we launch the next minor version (sprint release). TYPO3 v11.5 will be the LTS release that also marks the end of the v11 development series. The LTS version will be supported with bugfixes until 30 April 2023. After this date, we will provide security bugfixes until 31 October 2024.

The TYPO3 GmbH offers ELTS plans (extended long-term support) after the free support period.

Download

You can install TYPO3 in various ways. Traditionally you might have used the source package at get.typo3.org, but our recommended approach is setting up a project using PHP Composer. Further details can be found at get.typo3.org/version/11.

What's Next

TYPO3 version 11.0 is the first sprint release of the v11 series and marks the beginning of an exciting journey! This “dot-zero” release paves the way to more features and improvements to come.

To learn more about the release, check out the TYPO3 What’s New Slides or the detailed technical change log. The next release on our roadmap is TYPO3 v11.1, scheduled for 23 February 2021.

Additional contributors for this article
  • Proofreader : lizrobau