Skip to content

[MAINTENANCE] Typo3 v13 support#1686

Merged
sebastian-meyer merged 124 commits into
kitodo:mainfrom
thomaslow:typo3-v13-support
Sep 3, 2025
Merged

[MAINTENANCE] Typo3 v13 support#1686
sebastian-meyer merged 124 commits into
kitodo:mainfrom
thomaslow:typo3-v13-support

Conversation

@thomaslow
Copy link
Copy Markdown
Member

@thomaslow thomaslow commented Aug 13, 2025

The following pull request drops support for Typo3 v11 and updates Kitodo.Presentation for Typo3 v13.

Related Issues:

Includes Pull Requests:

Blocked by:

Todo

Mandatory

  • Make tests run with Typo3 v12 and v13
  • Update CI for Typo3 v12 and v13
  • Fix deprecation warnings from Typo3 v12 extension scanner

Maybe

Changes

  • Update composer typo3 dependencies to ^12.4|^13.4
    • PHP 8.2 required due to symfony/process>=7.0 required for Typo3 v13.4
  • Delete file ext_tables.php (used in v11) which was replaced by Configuration/Backend/Modules.php in v12+
  • Update TCA file field definitions according to Feature #98479
  • Fix php 8.4 fatal typing errors
  • Replace deprecated GeneralUtility::_GET() with ServerRequestInterface, see Deprecation #100596
  • Update use of ModuleTemplate, see Feature #96730
  • Update Javascript import from RequireJS to ES6, see Typo3 v12 migration instructions
  • Removed TCEforms wrapper in Configuration FlexForms, see Deprecation #97126
  • Add workaround for retrieving storagePid in ItemsProcFunc.php, see Deprecation #99020, maybe use Site Settings in the future?
  • Renamed QueryBuilder::execute, see Deprecation #96972
  • Update fetch calls due to DBAL v3 update, see Breaking #96287
  • Migrate $GLOBALS['TSFE']->fe_user, see Breaking #102605
  • Update languageService->getLL(...) translation method to languageService->sL(...), see Deprecation #100721
  • Update FlashMessage enum to ContextualFeedbackSeverity enum, see Deprecation #97787
  • Update KitodoFlashMessageRenderer markup rendering based on typo3 BootstrapRenderer without icon, because icon markup is not allowed when rendering form fields and triggeres a runtime exception
  • Remove workaround to disable json_response framework extension, which doesn't work in Typo3 testing framework v8+, see Code Snippet.
  • Transform pages.xml to pages.csv because XML-based fixture loader was removed in Typo3 testing framework v8+, see documentation
  • Update test fixtures due to removed database tables, see Important #101535
  • Migrate GeneralUtility::_GP to $request->getQueryParams in OaiPmhController, see Deprecation #100053.
  • Replace Bootstrap::initializeLanguageObject() see, commit
  • Replace TypoScriptParser in MetadataWrapVariableViewHelper due to Deprecation #99120
  • Replace ConfigurationManager::getContentObject due to Deprecation #100662
  • Replace deprecated strptime with DateTime::createFromFormat in OaiPmhController, see PHP
  • Remove internal_type option which is not evaluated any more, see Deprecation #96983
  • Migrate required option from eval list to separate option, see Deprecation #97035
  • Migrate date time fields from TCA type input to dateTime, see Feature #97232 and Documentation
  • Migrate number fields from TCA type input to number, see Feature #97193 and Documentation
  • Remove TCA ctrl definition cruser_id which is not evaluated any more, see Breaking #98024
  • Migrate TCA items option to associative array, see Feature #99739
  • Replace repository findBy magic methods, see Deprecation #100071
  • Migrate custom UpgradeWizards to use service tags, see Deprecation #99586
  • Migrade mail message API according to Feature #88643
  • Migrate scheduler action class changed to enum, see Breaking #101129
  • Migrate deprecated \PDO::PARAM_* to Connection::PARAM_*, see documentation

thomaslow added 30 commits July 24, 2025 13:47
…ssage icon rendering which is not allowed and causes RuntimeError.
… which is not available in Typo3 v12 to prevent autowire error.
Copy link
Copy Markdown
Member

@sebastian-meyer sebastian-meyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work! Thank you very much!

@sebastian-meyer sebastian-meyer merged commit db05aca into kitodo:main Sep 3, 2025
10 checks passed
],
]);
$xml = new SimpleXMLElement((string) $response->getBody());
$client = new OaiPmhTypo3Client($this->baseUrl, $this->oaiPage, $this, false);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thomaslow, @sebastian-meyer, this new code is missing in the 6.x branch. Should it be identical to the main branch?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stweil I am not sure what you mean. The OaiPmhTypo3Client was added as part of the Typo3 v13 update because there was an incompatibility due to the disableJsonWrappedResponse setting. This setting instructs Typo3 v11/v12 to return the response of the OaiPmhController as raw XML (instead of wrapped in JSON) such that it can be parsed by the external library Phpoaipmh (which doesn't know anything about Typo3 responses). This was not possible in Typo3 v13 any more, which is why I implemented the additional class.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, sorry, I was confused about the different releases. I assumed that 6.x should support TYPO3 v13, but it only supports v11 and v12. The main branch and a future 7.x support TYPO3 v13.

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

Labels

⊷ dependency An update of dependencies. ☆ development fund 2025 A candidate for the Kitodo e.V. development fund. ⟳ 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] Replace deprecated functions for TYPO3 v13 (sub-issue) [FUND] Add full support for PHP 8.4 (sub-issue) [FUND] Add support for TYPO3 13 LTS

3 participants