Release 4.0.0-RC1
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 theResources/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:
- All files from extensions, that require to be accessed by the web server directly MUST reside inside the
Resources/Public
folder. - 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'));
- Every TYPO3 extension (Composer package of type
typo3-cms-extension
) must define its extension key explicitly incomposer.json
- It is not possible any more to change
app-dir
orroot-dir
within the root composer.json Onlyweb-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