Skip to content

[FEATURE] TYPO3 v14 and PHP 8.5 support - #2236

Draft
thomaslow wants to merge 62 commits into
kitodo:mainfrom
thomaslow:typo3-v14-support
Draft

thomaslow wants to merge 62 commits into
kitodo:mainfrom
thomaslow:typo3-v14-support

Conversation

@thomaslow

@thomaslow thomaslow commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

This PR upgrades Kitodo.Presentation to be compatible with Typo3 v13.4 and 14.3.

Related Issues

Todo

  • Fix tests for Typo3 14.3
  • Test with PHP 8.5
  • Fix all deprecation warnings in Typo3 v13.4
  • Test migration from 13 to 14
  • Resolve dependency conflict with php-iiif-prezi-reader, softcreatr/jsonpath and PHP 8.5

Changes

  • Updated composer dependencies for Typo3 v13 and v14 compatibility
  • Added typo3/cms-extensionmanager to compose dependencies, which adds the Extensions list back to the admin area as a menu option
  • Move icon registration to Configuration\Icons.php, see Deprecation #104778
  • Move registration of new content wizard items from ContentElements.tsconfig to plugin registration in Configuration\TCA\Overrides\tt_content.php, see Deprecation #101799 and Extbase documentation.
  • Fix pageTreeComponentId for NewTenantController, see Deprecation #103850
  • Replace GeneralUtility::hmac with $hashService->hmac, see Deprecation #102762.
  • Migrate PageRepository->enableFields() to PageRepository->getDefaultConstraints, see Deprecation #102793
  • Migrate BackendUtility::getTcaFieldConfiguration to TcaSchemaFactory, see Deprecation 104304.
  • Fix translation of records in NewTentantController::getLLL due to changed array structure of LocalizationFactory::getParsedData, which is different in Typo3 v13
  • Migrate view helper RenderingContext::getRequest, see Deprecation 104684
  • Migrate view helper renderStatic to non-static render methods, see Deprecation #104789
  • Migrate List-Type to CType, see Migration documentation.
  • Fixed OaiPmh and RSS feed xml rendering which did contain html tags and spaces from default "fluid_styled_content" layout.
  • Remove fluidtypo3/vhs dependency, which is not needed and requires PHP 8.3 although Typo3 v13 should be compatible with 8.2
  • Migrate MailMessage::send to MailerInterface::send, see Deprecation 108097
  • Removed unused fields url from test fixtures, see Breaking #17406
  • Replaced StandaloneView construction with view instances from ViewFactory in all tests, see Deprecation 104773
  • Update DocumentRepositoryTest to check against ObjectStorage class instead of LazyObjectStorage class, see Deprecation 110347
  • Fix phpunit deprecation warnings about metadata in doc-comments.
  • Migrate FlexForm definitions using <eval>required</eval>, see Deprecation 97035
  • Migrate select and radio settings in FlexForms to use label and value tags, see Deprecation 99739
  • Migrate FlexForm file upload settings from type inline to type file, see Feature 98479 and Documentation
  • Removed FlexForm option enableMultiSelectFilterTextfield which is not required anymore, see Feature 88907
  • Fix PHP 8.5 deprecation warning about using null as an array offset and str_getcsv.
  • Migrate TCA maxSingleDBListItems and maxDBListItems to new Typoscript options, see Breaking #106412
  • Migrate TCA searchFields to new searchable config, see Breaking #106972 and Feature #106972
  • Replace old doc-style annotations that have no effect in Typo3 v14 and replace them with PHP attributes, see Breaking 107229
  • Replace deprecated GeneralUtility::getIndpEnv with NormalizedParams, see Deprecation 109551
  • Fix view helper argument declarations of type string which will fail stricter validation in Typo3 v14, see Breaking 108148

Migration Notes

  • Run vendor/bin/typo3 cache:flush
  • Run upgrade wizard "Migrates Kitodo.Presentation ListType to CType"

…nd spaces from default "fluid_styled_content" layout.
… 8.3 although Typo3 v13 should be compatible with PHP 8.2.
@thomaslow thomaslow added the ⟳ maintenance A task to keep the code up-to-date and manageable. label Oct 26, 2026
@sebastian-meyer sebastian-meyer added ↷ feature A new feature or enhancement. ☆ development fund 2026 A candidate for the Kitodo e.V. development fund. labels Oct 27, 2026
@sebastian-meyer sebastian-meyer linked an issue Oct 27, 2026 that may be closed by this pull request
@sebastian-meyer sebastian-meyer changed the title [MAINTENANCE] Typo3 v14 support [FEATURE] TYPO3 v14 support Oct 27, 2026
@sebastian-meyer

Copy link
Copy Markdown
Member

Regarding the composer.lock: I'd like to drop the lockfiles completely for the next release. Providing lockfiles for TYPO3 extensions is a very uncommon practice anyway (and afaik the lockfile isn't even used when installing the extension into an existing TYPO3 instance via require kitodo/presentation). If you like, you can delete the lockfiles from your branch as part of this pull request.

Regarding the supported PHP versions: When Kitodo.Presentation 8.0 is released, PHP 8.2 will be EOL already. So, I am fine with dropping support for PHP 8.2 and only supporting 8.3-8.5.

@thomaslow

Copy link
Copy Markdown
Member Author

@sebastian-meyer Ok. I have removed both composer.lock files. Now all tests are passing. The only obstacle that is left is my php-iiif-prezi-reader pull request. Otherwise, the Typo3 v14 update is ready and can be reviewed.

In the next weeks, I will work on the test environment. Depending on your preference, we could merge the Typo3 v14 update now or wait until there is a working test environment - whatever you prefer.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

☆ development fund 2026 A candidate for the Kitodo e.V. development fund. ↷ feature A new feature or enhancement. ⟳ maintenance A task to keep the code up-to-date and manageable.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FUND] Add support for PHP 8.5 [FUND] Add support for TYPO3 14 LTS

2 participants