Extensibility, Customization & Integrations

Feature Toggles

Introduced in version 9.1

Another exciting new feature of TYPO3 version 9.1 comes in the form of a new API class "Features". This allows to check if a feature is enabled/disabled in a TYPO3 instance. The main benefit is, that new features can not only be developed in parallel to existing features and simply switched on and off, but also to have admins switch to new features explicitly or disable legacy programmatically.

Documentation

Extbase Framework V11

Introduced in version 11.0

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:

Extbase controller actions return ResponseInterface

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.

Documentation

>

HTML-based Templated Emails

Introduced in version 10.3

Up until now, TYPO3’s system emails were  just plain text emails. But not anymore!

TYPO3 v10.3 now supports nice looking template-based HTML and plain-text emails by using the Fluid templating engine. Several emails created by the TYPO3 core use the new format: for example the notification email that can be triggered if a user logs into the backend, or the email that is sent to the appropriate users when an element changes its workspace stage.

Why don’t you trigger a test email in the Install Tool yourself to see how nice an HTML-based email can look?

But this is not all: by overwriting the default paths to the Fluid template files, developers and integrators can implement their own customized email templates. Imagine system-generated notification emails with the brand logo and colors of your agency! How amazing is this?

Documentation

>

Fluid-Based Frontend Login Form

Introduced in version 10.2

System integrators use the system extension Frontend Login (extension key “felogin”) to provide a simple way for users to log-in and access restricted areas of a website, with a password recovery function as well. However, it was cumbersome for integrators and developers to modify the templates. While all other system extensions use the modern Fluid templating engine, Frontend Login was the only extension that was still based on “Marker-based” templates.

TYPO3 v10.2 now includes an Extbase-version of that frontend login functionality. This solution has a few advantages:

  • Modify the templates more easily.
  • Send out HTML-based password recovery emails.
  • Adjust and modify validators to enforce password restrictions.

The new Extbase plugin is available out-of-the-box for new installations. To avoid losing modifications on existing TYPO3 instances, they will continue to use the old templates by default (use the feature toggle in TYPO3 v10.2 to explicitly enable the Extbase-version).

Documentation

Developer Joy with More PSR-14 Events

Introduced in version 10.2

Hooks and the Signal/Slot concept is one of TYPO3’s superpowers. This allows extending the core functionality by emitting a signal and to notify other components about a specific event. Extension developers love this technology and we took it to the next level by introducing PSR-14 events to the TYPO3 core in version 10.0.

Today we are more than happy to announce that all existing Signal/Slots of the TYPO3 core have been migrated to PSR-14 events in TYPO3 v10.2. Existing slots of custom extensions will continue to work but we highly recommend that extension developers should migrate slots to PSR-14 event listeners even now.

To learn how simple it is to migrate to PSR-14 events, developers can review the code change of the FileMetadataOverlayAspect for example.

Documentation

>
>

PHP class/property analysis

Introduced in version 10.0

Extbase (the powerful MVC framework used in TYPO3) enables core and extension developers to write awesome functions for TYPO3 in a clean and consistent way (“convention over configuration”). The analysis of custom PHP classes and their properties is a key function of Extbase. This crucial task is now handled by Symfony's PropertyInfo Component. By using a PHP package that follows industry standards, is well-known, and maintained by a huge community, we ensure that this component of Extbase remains state-of-the-art for years to come. At the same time we reduce our maintenance efforts and open the doors for new functionality for extension authors.

Documentation

mailer API

Introduced in version 10.0

TYPO3 has used the feature-rich SwiftMailer library to generate and send out emails. However, active development has stagnated and we decided to use another great Symfony solution with a modern API:  the “Mime” package for composing emails and “Mailer” package for processing and sending them.

Both components are state-of-the-art and enable us to generate HTML-based emails in various places of the core, where currently simple text-only emails are implemented.

Documentation