TYPO3 v9.2.0 released

Categories: Development, Community, TYPO3 CMS Created by TYPO3 Core Team and Michael Schams
Off to go Site-Seeing!
Packed with awesome features and perfectly on time, we released a new version of TYPO3 v9.

The sprint release version 9.2 focuses on “Site Handling” and will boost the productivity of editors, push the creativity of developers and ease the life of integrators.

Let’s have a closer look what bang you get for your buck.

Site Handling

The most notable new feature in TYPO3 version 9.2 is the Site Handling functionality. Already introduced in version 9.1, the Site Management module in the backend of TYPO3 now contains a new sub-module “Configuration”. This enables integrators and site administrators to add and modify a global configuration for one or multiple sites.

A site configuration has a unique (human-readable) identifier and configuration values such as the root page ID, the base path (entry point), language definitions, etc. By storing the settings in a YAML file under “typo3conf/sites/site-identifier/”, it is easy to maintain the configuration in a version control system such as Git for example.

The Site Handling functionality already supports configurations such as domains, languages, error-handling and will be extended further until the the v9 LTS release later this year.

Debugging and Profiling

The well-known “TYPO3 Admin Panel” provides a deeper insight into the internal processes of TYPO3 at run-time. Once activated, TYPO3 integrators and site administrators can access performance and cache statistics, settings of a specific page, etc. They can also simulate certain frontend access situations. It is for example possible to impersonate a specific user group or simulate a timestamp, which may have an impact what is shown in the frontend.

Do not worry - we have not removed this awesome feature from TYPO3, but the Admin Panel will receive a major overhaul to be state-of-the-art again. As the first step, it was moved from the core into a dedicated system extension, which allows integrators to activate and deactivate the feature easily as required. This step also builds the foundation for further improvements such as a modern re-design and more new functions. Better profiling capabilities and the option to add custom functions via an API are just two enhancements on our list.

Do not be shy and get involved if you have a great idea or if you want to contribute in any way to support this initiative.

Please note that the (new) Admin Panel needs to be activated in the Extension Manager once you have updated an existing TYPO3 instance to version 9.2.

Another new feature that TYPO3 integrators and developers alike will embrace is the fact that values of fields are displayed in the backend. The labels of dropdown box items often do not clearly represent the values that get written into the database. A good example are CSS class names: when editors can choose from a list of options in a dropdown box, the labels could be “Ruler Before” or “Indent, 33%/66%”. These are not the values that get stored in the database of course, but “ruler-before” or “indent-left” are.

If the backend debug mode is enabled ([BE][debug] = 1), the real values of fields are displayed in square brackets to backend users with administrator privileges. This enhances the recently introduced feature of showing field names even further.

Built for the Future

If the improvements and new features described above are not exciting and technical enough, you are probably a hard-core PHP developer!

TYPO3’s reputation of being a dinosaur on the CMS market does not mean, the code base can not feature contemporary technologies and adopt modern software paradigms. Earlier this year, the PSR-15 middleware specification was officially released. The PSR-15 standard is defined as follows:

“[PSR-15] describes common interfaces for HTTP server request handlers (request handlers) and HTTP server middleware components (middleware) that use HTTP messages [...]. HTTP request handlers are a fundamental part of any web application. Server side code receives a request message, processes it, and produces a response message. HTTP middleware is a way to move common request and response processing away from the application layer.”

TYPO3 aims to support PSR-15 middlewares out-of-the box. This approach will improve interoperability with independent libraries and all requests in the TYPO3 core will return a PSR-7 response. As one of the first enterprise content management systems on the market, TYPO3 version 9.2 introduces PSR-15 middlewares in the frontend, as well as in the backend.

TYPO3 v9 LTS (scheduled release date in November 2018) aims to avoid constants and global variables if possible. Therefore, a new class “Environment” was developed, which acts as a central place for storing properties commonly used throughout the core. This class also contains methods that are relevant for all kind of PHP, CLI and web requests.

Mail Queue

The SwiftMailer project provides a sophisticated PHP library, that is the de-facto standard for creating and sending RFC compliant emails in PHP with a multitude of features. SwiftMailer has been integrated in TYPO3 since version 4.5.

With TYPO3 version 9.2, it is now possible to leverage SwiftMailer’s queue functionality - also known as “spool transport”. In most cases, developers want to send out emails immediately, but under certain circumstances, “spooling” emails and processing them later is beneficial, e.g. for performance reasons. Therefore, we are happy to announce, that the Mail API of TYPO3 version 9.2 now supports SwiftMailer’s “SpoolTransport” functionality.

Mails can be queued in memory (and only sent, if the HTTP request did not cause an exception or error) or in files. If latter, the sending of spooled emails can be triggered by a command line call or by a scheduler task. In both cases, the number of emails to process can be limited, as well as the maximum time.

Hardening the Security

Security has always been one of TYPO3’s top priorities and as we know, hardening the security of a system is an ongoing process.

TYPO3 stores various files in the “var/” directory, which is typically located under “typo3temp/var/”. Some of these files are for example Install Tool session files, caching framework files, files related to locking or logging, Extension Manager data files or files generated by TYPO3’s import/export or core update functions. Despite the fact that a properly configured web server and TYPO3 instance prevents accessing any sensible files in the “var/” directory, it is obvious that these are non-public files, which should better be located outside the web root.

As part of the ongoing effort to enhance the security of TYPO3 even further, the path to the “var/” directory can now be configured as an environment variable TYPO3_PATH_APP. The following configuration directive can be used by the Apache web server for example:

SetEnv TYPO3_PATH_APP /var/www/example.com/

This would instruct TYPO3 to create and use directory “/var/www/example.com/var/” whereas the web root should be “/var/www/example.com/htdocs/”. If the environment variable is not set, non-composer installations of TYPO3 continue to use “typo3temp/var/” as the default. Composer-based installations benefit from this functionality directly, as data is stored within the project roots' folder under “var/”.

Improvements for Editors

TYPO3 would not be so successful as it is today, if we only concentrated our efforts on improvements  for integrators, developers and administrators. Backend users, e.g. editors, have always been in our focus. Two notable new features in TYPO3 v9.2 especially for this target audience prove this again.

A content element on a page can often be used as a template for other, very similar elements. This could be a text/image for example, where most of the individual settings, e.g. the headline, visual appearance, access restrictions, etc. should be exactly the same or only need minor adjustments. In these cases, it makes sense to clone the existing element, which has been possible already by using “WEB → List” and copy/paste functions. However, this process requires a number of steps and clicks.

A new button “Duplicate” has been added, which appears when adding or editing a content element in the backend. With one click, backend users can clone a content element, which simplifies the process significantly.

The second improvement directly impacts the backend user interface (UI) and affects editors, as well as developers and designers alike. A set of so-called “toggle switches” have been introduced in TYPO3 version 9.2, which do not only look nice, but are also a useful tool to allow backend users to switch between two states easily.

The render types “checkboxToggle” and “checkboxLabeledToggle” can now be used for the checkboxes. On top of that, checkboxes are now displayed with icons provided by the IconFactory.

Download

TYPO3 can be installed in various ways. For example the traditional way by using the source package at typo3.org or the modern way by setting up a project using composer, to name just two. Further details can be found at get.typo3.org/version/9.

What's Next

To learn more about the new features, changes and improvements of TYPO3 version 9.2, have a look at the TYPO3 What’s New Slides or the detailed technical change log.

The next release on our road to the LTS version of TYPO3 v9 will be version 9.3, currently scheduled to be released in June 2018. The focus for this release is on URL routing for pages. You can find the release agenda in the TYPO3 Roadmap.

Until then, we would like to encourage you to check out TYPO3 version 9.2, embrace the new features and improvements, share your thoughts and report issues. There are also some exciting development initiatives, where you can get be involved to shape the future of TYPO3.

Related Links