7 Key Changes of TYPO3 v11.5

TYPO3 version11.5 brings even more improvements to the vivid list of functionality and user interface. Let’s hit the highlight features of TYPO3 v11.5 that we loved the most!

7 Key Changes of TYPO3 v11.5

Now as with the official release of TYPO3v11 LTS the last sub-version TYPO3v11.5 has been released and all set ready to bring with it a host of new features. The latest release of TYPO3 version 11.5 comes with some new features and improvements (mostly for TYPO3 developers).

We’ve been waiting excitedly and so we have been following the TYPO3 version 11 development closely and trying out the new features on our test sites. 

Although TYPO3 version 11.5 holds less but very important features whereas major functionalities are already covered in earlier TYPO3 versions 11.1, 11.2, 1..3 and 11.4. Check them out, 

One more thing, this blog is dedicated to TYPO3 people who contribute to the betterment, improvement and enhance the richness of the amazing TYPO3 OpenSource Project.

In this article, we will show you what’s there in TYPO3 11.5  with its new power packs added in the latest release.

Roadmap of TYPO3 v11

TYPO3 version 11.5 marks the last release of the v11 series and receives long-term support (LTS). This version will be maintained by the community for at least three years.

With the release of TYPO3 v11.5, the current “Long Term Support” version is v10.4 LTS, which was released in April 2020 and will be provided with security-relevant updates until April 2023.

System Requirements for Latest TYPO3 v11

TYPO3 can be run on any system that supports PHP, MySQL or DoctralDB, and HTTPS. 

As long as you are running these services on your system, you can use TYPO3 v11. These requirements may change, so make sure to review the Server Requirements listed as this will continue to change and be updated.

  • PHP version 7.4 or 8.0
  • PHP settings:
    • memory_limit >= 256M
    • max_execution_time >= 240s
    • max_input_vars >= 1500
  • compilation option --disable-ipv6 must not be used
  • Most database servers supported by Doctrine DBAL also work with TYPO3. Tested DB engines are
    • MariaDB
    • MySQL
    • PostgreSQL
    • Microsoft SQL Server
    • SQLite

Installation of TYPO3 v11

Composer-based TYPO3 Installation Method

If you’re installing using PHP Composer under Linux, macOS, and Windows 10, use following commands,

 

// Go to your web directory
cd /var/www/site/

// Initiate TYPO3 v11 base distribution
composer create-project typo3/cms-base-distribution:^11 typo3v11

 

Moreover, the Composer Helper online tool makes package selection easy. For additional details you can check out the Installation and Upgrade Guide. But we recommend and always suggest a Composer based installation method!

Classic TYPO3 Installation Method

Although composer based TYPO3 installation is recommended but however classic installation procedure under Linux/Mac OS X can be done as (DocumentRoot for example /var/www/site/htdocs):

 

cd /var/www/site
wget --content-disposition get.typo3.org/11.5
tar xzf typo3_src-11.5.0.tar.gz
cd htdocs
ln -s ../typo3_src-11.5.0 typo3_src
ln -s typo3_src/index.php
ln -s typo3_src/typo3
touch FIRST_INSTALL

Splendid Features Of TYPO3 11.5

1) New Record Wizard

Tables shown in the "New Record" wizard are currently logically and visually more separated.

2) TCA Option groupName

This change adds the "groupName" property to group records within the "New Record" wizard into logical groups, where TYPO3 Core defines "system", "frontendaccess", "backendaccess" and "content".Existing extensions with "groupName" continue to work by shipping their own groups.

3) TCA Option internal_type

Most common use case for TCA type "group" fields is the usage of "internal_type=db". Therefore, this option is now the default value. This allows us to simplify corresponding parts in FormEngine, Datahandler, etc. Furthermore, all Core TCA files are adjusted and do no longer define this option for type "group".

4) New PSR-14 Event

The following new PSR-14 event has been introduced: ModifyResolvedFrontendGroupsEvent
This event allows developers to attach frontend user groups
dynamically during a frontend request.

5) EXT.form - Bootstrap 5 Compatible Templates

The form framework now provides Bootstrap 5 compatible templates. The markup has been completely reworked, unnecessary nesting layers have been removed and semantically more meaningful HTML tags are used. The templates were also improved in the area of accessibility.

In the course of Bootstrap 5 compatibility two new breakpoints "xl" and "xxl" were added to the grid configuration.

All hard coded CSS classes in the templates have been moved to the configuration. This simplifies the integration of the frontend. The change makes it easier for integrators to make upgrades of the frontend framework. In most cases, it is now no longer necessary to

override a template for changes to classes. Instead, it is only necessary to add the appropriate CSS classes to the form configuration.

In order not to be broken, by default the templates are still rendered as they used to be.

To use the new Bootstrap 5 compatible templates the form rendering option `templateVariant` must be set from `version1` to `version2`in your form setup.

6) Fluid ViewHelpers

With the situation a couple of times that core changed Fluid Viewhelpers to adapt them to current needs, keeping the template arguments, but changing internal handling and method signatures.

It happened that developers then stepped up with "This broke my own Viewhelper!" and we had to act upon it. The ImageViewHelper for instance has been a victim of this.

From a framework point of view, Viewhelpers are specific implementations tailored for specific use. In most cases, they're small codewise. 

  • The patch brings an Important.rst to pitch an upcoming v12 change that will declare all Viewhelpers final. 
  • Third-party extensions can no longer extend them with own variants
  • Extending these classes and changing their scope should not be supported. 
  • Developers should extend a matching abstract instead of extending specific VH's.

The core currently of course also extends a couple of VH's itself, but this is too late for v11 now to change and adapt.

Instead, the time in v12 to resolve these cases and will have a look at the abstract classes as well to see which VH functionality should be included in abstracts to simplify re-use and transition for extension authors and to sharpen core API.

 

<f:transform.html>

 

The ViewHelper resolves and transforms individual TYPO3 link handlers such as t3://-URIs
It is independent from any TypoScript configuration and works without mixing concerns in ContentObjectRenderer::parseFunc

 

<f:transform.html selector="a.href,div.data-uri">
<a href="t3://page?uid=1" class="page">visit</a>
<div data-uri="t3://page?uid=1" class="page trigger">visit</div>
</f:transform.html>

7) Deprecated PHP Classes

The following interface has been marked as deprecated:

 

TYPO3\CMS\Extbase\Mvc\View\ViewInterface

 

To further decouple Fluid from Extbase the following class has been marked as deprecated:

 

TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext

Deprecated & Removed TYPO3 Functions

Custom JSWindow Options

The HMENU/TMENU options for opening links of a menu in a custom JavaScript popup have been marked as deprecated:

 

# deprecated:
page.123 = HMENU
page.123.1 = TMENU
page.123.1.JSWindow = 1
page.123.1.JSWindow.params = width=200,height=300,status=0,menubar=0

 

Now calling a frontend page with HMENU and JSwindow pop ups will trigger a PHP deprecation warning.

Including External CSS

The option to use the @import syntax for including external CSS files through TypoScript has been marked as deprecated:

 

# deprecated:
page = PAGE
page.includeCSSLibs.file1 = fileadmin/benni.css
page.includeCSSLibs.file1.import = 1

 

Migration options:

  • use the <link>-tag or
  • create an inlineCSS TypoScript manually

Various getInstance() Methods

The following methods have been marked as deprecated:

 

TYPO3\CMS\Core\Resource\Index\ExtractorRegistry::getInstance()
TYPO3\CMS\Core\Resource\Index\FileIndexRepository::getInstance()
TYPO3\CMS\Core\Resource\Index\MetaDataRepository::getInstance()
TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\OnlineMediaHelperRegistry::getInstance()
TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance()
TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry::getInstance()
TYPO3\CMS\Form\Service\TranslationService::getInstance()
TYPO3\CMS\T3editor\Registry\AddonRegistry::getInstance()
TYPO3\CMS\T3editor\Registry\ModeRegistry::getInstance()

Authentication Objects

The rst arguments of the following methods have been marked as deprecated:
TYPO3\CMS\Core\Authentication\AbstractUserAuthentication

  • writeUC()
  • unpack_uc()

TYPO3\CMS\Core\Authentication\BackendUserAuthentication

  • backendCheckLogin()

The third argument of the following method has been marked as deprecated:

TYPO3\CMS\Core\Authentication\BackendUserAuthentication

  • isInWebMount()

TypoScript parseFunc.sword

  • The TypoScript option parseFunc.sword allows to wrap search words in a special wrap when no_cache = 1 is set. This functionality has been deprecated
  • Installations are affected that are accessed with, for example, a request such as:

https://example.com/?no_cache=1&sword_list%5B%5D=search

SectionMarkupGenerated Events

The following methods have been marked as deprecated:

 

TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent->getPageLayoutView()
TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent->getLanguageId()
TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent->getPageLayoutView()
TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent->getLanguageIdg()

PHP Function str_starts_with()

The following methods have been marked as deprecated:

 

StringUtility::beginsWith()
StringUtility::endsWith()
GeneralUtility::isFirstPartOfStr()
GeneralUtility::minifyJavaScript()

 

PHP v8 offers the function str_starts_with() that supports proper typing and features better performance.

Inline JavaScript in fieldChangeFunc

The option to use an iframe in the navigation area for backend modules through "fieldChangeFunc" has been marked as deprecated:

 

// deprecated:
$this->data[’parameterArray’][’fieldChangeFunc’][’example’] = "alert(’demo’);";
$parameterArray[’fieldChangeFunc’][’example’] = "alert(’demo’);";

 

The TYPO3 Core natively supports Web Components which should be used instead.

RequireJS Callback Functions

Using RequireJS callback functions has been marked as deprecated (for example: $resultArray[’requireJsModules’] with scalar string)< These calls should be replaced by new JavaScriptModuleInstruction declarations.

It’s A Wrap!

What’s your favorite feature in TYPO3 v11.5 or looking for any new feature? 

To know more about TYPO3 v11.5; Checkout below resources.

As TYPO3 developer or integrator; What’s your favourite feature in TYPO3 v11.5? Do you have any questions on TYPO3 v11? Just write down the comment box below and we will be happy to answer you.

Have a Happy TYPO3 v11!

Post a Comment

×
Captcha Code Can't read the image? Click here to refresh