Skip to content

TYPO3 11.5 compatibility

Compare
Choose a tag to compare
@derhansen derhansen released this 17 Oct 12:51
6d23752

This is the first version of the extension with support for TYPO3 11.5 including support for PHP 7.4 and 8.0

The extension now uses strict types and strict properties wherever possible and many TYPO3 core deprecations have been considered. This results in 7 breaking changes, which need to be taken care of when you migrate a website to TYPO3 11.5 LTS

After updating from a previous version, it is at least required to execute the "Migrate plugins and settings" update wizard and to apply required database changes using the TYPO3 install tool.

Breaking Changes 🔥

All changes listed below are considered breaking changes and you may need to change custom code and custom templates manually. Make sure to read this section carefully.


[!!!][TASK] Remove switchableControllerActions #802

SwitchableControllerActions are deprecated and will be removed in TYPO3 12. Therefore, the event plugin has been split into 5 separate plugins, so switchableControllerActions usage can be removed from the extension. In order to migrate existing plugins and plugin settings, please execute the upgrade wizard.

image

Note: If the FlexForm of the extension has been extended, those settings will not be considered by the update wizard.

Important manual changes:

  • You must also adjust all custom templates, where the old event plugin is referenced in a f:link.action viewHelper. There, you must change the old plugin name to the new one. In most scenarios, this can be done by replacing pluginName="Pievent" with pluginName="Pieventregistration".
  • Plugin access permissions can not be migrated and must be assigned manually to backend users / backend user groups.

[!!!][TASK] Use strict types in domain models #946

All domain models now use strict types and types properties. If you extended the extension with a custom extension, you must ensure to change you classes to support strict types and strict properties.


[!!!][TASK] Move create demand functions to own class to make them testable #909, #922

All Data Transfer Objects (DTOs) do not extend TYPO3\CMS\Extbase\DomainObject\AbstractEntity any more. DTO classes, which can be instantiated from an array of settings contain the static function createFromSettings, which returns an object of the class with the given settings set.

If you extended the DTOs in a custom extension, you must ensure that your extended classes match the requirements (strict types and strict properties) of the DTO classes in the main extension.


[!!!][TASK] Remove RegistrationRepository::findExpiredRegistrations #935

The function RegistrationRepository::findExpiredRegistrations has been removed, as it was not in use any more.


[!!!][TASK] Rename typoscript files to .typoscript #930

The file extension for the TypoScript setup and constants has been renamed from .txt to .typoscript. If you included the TypoScript files in your sitepackage, you must ensure to rename the file extension in your includes.


[!!!][FEATURE] Allow use of either reCaptcha or hCaptcha #886

The existing reCaptcha integration has completely been refactored in order to support both reCaptcha and hCaptcha. If you use reCaptcha within the extension, you must manually migrate settings as shown below:

  • Migrate all settings settings.reCaptcha -> settings.registration.captcha (please check the included TypoScript for new options)
  • Adjust the Registration.html template, so the new ReCaptcha partial will be rendered

[!!!][TASK] Use strict types in AbstractPayment and PaymentController #929, #877

Strict types have been added where ever possible. Also all properties and getter/setters in AbstractPayment do now require strict types. All controller actions now return a PSR-7 response object.

If you implemented a custom payment method or extended the PaymentController, you must ensure to adjust your code accordingly.


[!!!][TASK] Use own FrontendUser Model and Repository #892

The extension now uses a custom class for FrontendUser and FrontendUserRepository. If you extended the TYPO3 core classes FrontendUser or FrontendUserRepository in order to add functionality to ext:sf_event_mgt, you must migrate your changes to support the new classes in the extension.


[!!!][TASK] Replace pagination widget and implement native pagination for list view #803

The backend module now uses the TYPO3 pagination API. If you have extended backend module templates, make sure to replace f:widget.paginate occurrences as shown in this commit de2730d


Important changes ⚠️

The following important changes are not considered breaking, but manual interaction may be required.

[TASK] Apply Bootstrap 5 changes to backend module #924

If the Administration module template has been overwritten, it is required to adapt the template match the changes in #924 and #803

[TASK] Remove management DB fields from ext_tables.sql #801
[TASK] Remove MM Tables from ext_tables.sql #917

It is recommended to run the "Analyze Database" task in the "Maintenance" administration module to apply required database changes.


New Features

[FEATURE] Added RTE field "Custom text" to event #936
[FEATURE] Added AfterRegistrationCancelledEvent #945


Other changes

[BUGFIX] Fixed incorrect path to link validator TSConfig #943
[BUGFIX] Fixed TitleViewHelperTest
[BUGFIX] Fix SearchDemand::fromArray() for PHP8 #921
[TASK] Move payment fields to registration options tab #956
[TASK] Rename tab "category" to "categories" #957
[TASK] Re-structure "Registration options" fields
[TASK] Always instantiate models/DTOs with makeInstance #953
[TASK] Updated phpstan baseline file
[TASK] Simplified 2 conditions
[TASK] Remove superfluous code in Icons.php
[TASK] Harden getUserMessageTemplateSubject() in NotificationService
[TASK] Ensure TSFE is available before accessing
[TASK] Include PHP 8.0 for tests
[TASK] PHP8 compatibility changes #921 #952
[TASK] Fixed failing functional tests due to strict types
[TASK] Declare strict_types in tests
[TASK] Remove last occurrences of pievent
[TASK] Make RegistrationValidator tests more reliable #914
[TASK] Refactor tests #826
[TASK] Resolve backend user in administration module notification view #949
[TASK] Fixed some issues due to strict properties in domain models #946
[TASK] Fixed some issues due to strict properties in domain models #946
[TASK] Ensure empty values are not saved in flexform #950
[TASK] Replace pluginName in template to new plugin names #802
[TASK] Exclude domain models from DI #916
[TASK] Updated SQL dump for acceptance tests #802
[TASK] Switch content element preview to PreviewRenderer #807
[TASK] Added return type for confirmRegistrationAction #877
[TASK] Make actions return a PSR-7 response #877
[TASK] Use strict types in EventController
[TASK] Re-introduce soft reference parser configuration #907
[TASK] Support TYPO3 pagination API in list view #803
[TASK] Enforce trailing commas in multi line arrays #944
[TASK] Handle Extbase ViewInterface deprecation #941
[TASK] Do not use BackendTemplateView in AdministrationController #934
[TASK] Split TypoScript constants in sections #938
[TASK] Remove workarounds in handleEventNotFoundError
[TASK] Remove ObjectManager usage in Event domain model #859
[TASK] Use strict types in repositories
[TASK] Avoid ObjectManager usage in EventController #859
[TASK] Avoid ObjectManager usage in tests #859
[TASK] Use own CategoryRepository #933
[TASK] Added extension scanner ignore in PageCache hook
[TASK] Use strict types in various viewHelpers
[TASK] Update PageViewHelper to match v11 core version
[TASK] Use strict types in some viewHelpers
[TASK] Use strict types in some viewHelpers
[TASK] Use strict types in RegistrationValidator
[TASK] Use strict types in RegistrationFieldValidator
[TASK] Use strict types in spam checks
[TASK] Use strict types in remaining services
[TASK] Use strict types in RegistrationService
[TASK] Use strict types in NotificationService
[TASK] Use strict types in several services
[TASK] Use strict types in several services
[TASK] Make AttachmentService strict
[TASK] Apply strict types to EventPageTitleProvider
[TASK] Make hook classes more strict
[TASK] Apply strict properties in all PSR-14 events
[TASK] Added declare(strict_types=1) to 2 controllers
[TASK] Minor code format change in DisableLanguageMenuProcessor
[TASK] Make AbstractController more strict
[TASK] Make AdministrationController more strict
[TASK] Raise phpstan to level 5
[TASK] Apply Bootstrap 5 styles to IndexNotify template
[TASK] Avoid usage of TYPO3_REQUEST in extbase controllers #893
[TASK] Refactor handleEventNotFoundError #898
[TASK] Use strict types in EventPlausabilityService
[TASK] Strictify evaluation tests
[TASK] Fixed return type in CleanupCommand
[TASK] Remove 6th parameter in wrapClickMenuOnIcon usage #928
[TASK] Use TYPO3 pagination API in backend module #803
[TASK] Rename GitHub Actions tasks #927
[TASK] Split GitHub actions by unit/functional and acceptance #927
[TASK] Store searchDemand for admin module as array in session #925
[TASK] Apply Bootstrap 5 changes to backend module Refs#924
[TASK] Remove MM Tables from ext_tables.sql #917
[TASK] Remove management DB fields from ext_tables.sql #801
[TASK] Use TCA type "language" #911
[TASK] Fixed RegistrationRepositoryTest #892
[TASK] Make UserRegistrationDemand DTO more strict #922
[TASK] Make SearchDemand DTO more strict #922
[TASK] Make ForeignRecordDemand DTO more strict #922
[TASK] Added missing createFromSettings test for EventDemand #922
[TASK] Fixed typo in CategoryDemandTest #922
[TASK] Remove createEventDemandObjectFromSettings() in EventController #909
[TASK] Fixed findDemandedRecordsByStoragePage test #922
[TASK] Make EventDemand DTO more strict #922
[TASK] Make CustomNotification DTO more strict #922
[TASK] Define "self" return type for createFromSettings
[TASK] Remove superfluous doc comments in CategoryDemand
[TASK] Add missing imports in PageUtility
[TASK] Make CategoryDemand strict and add static createBy function #922
[TASK] Make CategoryDemand strict and add static createBy function #922
[TASK] Replace QueryGenerator::getTreeList usage #860
[TASK] Setup extension in CI setup
[TASK] Remove typo3 console usage in CI
[TASK] Make processRequest return a PSR-7 response #920
[TASK] Update Acceptance Test configuration
[TASK] Do not use getControllerContext in viewHelpers #919
[TASK] Remove superfluous processRequest override in eventController #915
[TASK] Remove DI in RegistrationValidator #859
[TASK] Use TCA type "category" #897
[TASK] Migrate last occurrence of TYPO3_MODE #862
[TASK] Avoid ObjectManager usage in functional tests #859
[TASK] Switch to testing framework v6 (patch 1) #869
[TASK] Migrate TYPO3_MODE usage #862
[TASK] Migrate/remove TYPO3_MODE === 'BE' checks #868
[TASK] Register Icons using Icons.php #895
[TASK] Add new tab "Geo data" for location record #906
[TASK] Move image field to new "Media" tab in TCA #905
[TASK] Remove rtehtmlarea_images softref parser config #904
[TASK] Apply CGL fixes
[TASK] Update to php-cs-fixer v3 #896
[TASK] Do not depend on ericmartel/codeception-email-mailhog #902

[DOC] Update documentation #954
[DOC] Added new image for event-registrationfields.png #954
[DOCS] Update documentation for route enhancers #912
[DOCS] Update docs about new plugins #946
[DOCS] Updated documentation #939
[DOCS] Updated README.md
[DOCS] Fixed doc about "Registrations on the waitlist" #931