Community Budget Idea Report: Updating the Paste Reference For Content Elements Extension
The Paste reference for Content Elements extension (paste_reference) has been updated for TYPO3 versions 12 and 13, addressing longstanding…
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.
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:
As part of TYPO3 v11 development, several libraries that TYPO3 depends on will be (or already have been) updated:
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.
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.
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.
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.
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.
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).
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”.
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”).
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.
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.
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.
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.
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.
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.
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.
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.
The Paste reference for Content Elements extension (paste_reference) has been updated for TYPO3 versions 12 and 13, addressing longstanding…
The versions 13.4.2 and 12.4.24 of the TYPO3 Enterprise Content Management System have just been released.
In this update, Marcin Sągol shares the progress and key developments of the Documentation Search Improvements project for TYPO3. This initiative aims…
Open Source is a living, breathing ecosystem. It’s not just about code; it’s about people – Contributors are the lifeblood of Open Source projects.…
As we wrap up 2024, the TYPO3 community continues to shine brightly! November brought us the much-anticipated TYPO3 Conference 2024, where the…
Relive all the wonderful moments from the 2024 edition of T3CON, where the TYPO3 community came together to deliver three days of learning,…