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