1 2.. include:: ../../Includes.txt 3 4========================================= 5Breaking: #63846 - FormEngine refactoring 6========================================= 7 8See :issue:`63846` 9 10Description 11=========== 12 13FormEngine is the core code structure that renders a record view in the backend. Basically everything 14that is displayed if elements from page or list module are edited is done by this code. 15 16The main implementation was done thirteen years ago and was never touched on a deep code structure level 17until now. The according patches were huge and move the whole code to a new level. Stuff like that can 18not be done without impact on extensions that use this code. 19 20 21Impact 22====== 23 24TCA changes 25----------- 26 27* Keys `_PADDING`, `_VALIGN` and `DISTANCE` of `TCA['aTable']['columns']['aField']['config']['wizards']` 28 have been removed and have no effect anymore. 29 30* Key `TCA['aTable']['ctrl']['mainPalette']` has been dropped and has no effect anymore. 31 32TSconfig changes 33---------------- 34 35* Key `mod.web_layout.tt_content.fieldOrder` has been dropped and has no effect anymore. 36 37* Key `TCEFORM.aTable.aField.linkTitleToSelf` has been dropped and has no effect anymore. 38 39 40Code level 41---------- 42 43Methods and properties from FormEngine are not available anymore. Classes like `InlineElement` are gone. 44New structures like a factory for elements and container have been introduced. 45While not too many extensions in the wild hook or code with FormEngine, those that do will probably throw 46fatal errors after upgrade. The hook `getSingleFieldClass` has been removed altogether. 47 48Changed user functions and hooks 49-------------------------------- 50 51* TCA: If format of type `none` is set to `user`, the configured userFunc no longer gets an instance of `FormEngine` 52 as parent object, but an instance of `NoneElement`. 53 54* TCA: Wizards configured as `userFunc` now receive a dummy `FormEngine` object with empty properties instead 55 of the real instance. 56 57* Hooks no longer get the key `form_type`. Use `type` instead. 58 59* Hook `getSingleFieldClass` has been dropped and no longer called. 60 61Breaking interface changes 62-------------------------- 63 64* The type hint to `FormEngine` as `$pObj` has been removed on the `DatabaseFileIconsHookInterface`. 65 This hook is no longer given an instance of `FormEngine`. 66 67* Method `init()` of `InlineElementHookInterface` has been removed. Classes that implement this interface will 68 no longer get `init()` called. 69 70 71Affected installations 72====================== 73 74For most instances, the overall impact is rather low or they are not affected at all. Some very 75rarely used TCA and TSconfig options have been dropped, those will do no harm. Instances are usually only affected 76if loaded extensions do fancy stuff with FormEngine with hooks or other related code. 77 78TYPO3 CMS 7 installations with extensions using or hooking into FormEngine and its related classes are 79likely to break. TCA elements of type user may break. Instances using these parts will quickly show 80fatal errors at testing. It may help to search for `FormEngine` or `t3lib_tceForms` below the `typo3conf/ext` 81directory to find affected instances. 82 83 84Migration 85========= 86 87Adapt the extension code. The majority of methods were for internal core usage only, but still public. Please 88use the existing API to solve needs on FormEngine. 89 90 91.. index:: PHP-API, Backend, TSConfig, TCA 92