Skip to content

Release 4.0.0-RC1

Compare
Choose a tag to compare
@helhum helhum released this 10 Dec 12:25
· 8 commits to main since this release
d9b4e06

Features

  • All extensions are now installed in the vendor folder. This means all extension files will not be accessible by the web server any more.
    Public resources from extensions must be in the Resources/Public folder, which will automatically be published by TYPO3 using
    symlinks. See "breaking changes" for more implications on that change.

Breaking changes

All extensions are now installed in the vendor folder.

While this is a great feature, it also comes with some implications that need to be considered:

  1. All files from extensions, that require to be accessed by the web server directly MUST reside inside the Resources/Public folder.
  2. The public resource URL can not be derived any more from the absolute path to the file by stripping off some path part, but only by
    passing the absolute path to \TYPO3\CMS\Core\Utility\PathUtility::getAbsoluteWebPath
    Example:
use TYPO3\CMS\Core\Utility\PathUtility;
use TYPO3\CMS\Core\Utility\GeneralUtility;

PathUtility::getAbsoluteWebPath(GeneralUtility::getFileAbsFileName('EXT:ext_key/Resources/Public/Icons/Extension.svg'));
  1. Every TYPO3 extension (Composer package of type typo3-cms-extension) must define its extension key explicitly in composer.json
  2. It is not possible any more to change app-dir or root-dir within the root composer.json Only web-dir can still be changed,
    but it needs to be a sub directory of the composer.json directory

General remarks

It is planned to release a stable version 4.0.0 in a few weeks and new projects with TYPO3 11.5 will then install this version of composer installers. If the extension you require in your project have hard coded paths that reference e.g. typo3conf/ext/ directly, you can still pin this package to version ^3.1 within your root composer.json