Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

Blueprints/RemovingTypesFromTSconfig

From TYPO3Wiki
Jump to: navigation, search

<- Back to blueprints overview

Blueprint: Refactor TSconfig for removing types of value

Proposal Add additional level for set types in TSconfig
Owner/Starter Zbigniew Jacko
Participants/Members -
Status Draft, Discussion, Voting Phase, Accepted, Declined, Withdrawn
Current Progress Unknown, Started, Good Progress, Bad Progress, Stalled, Review Needed
Topic for Gerrit N/A

Target Versions/Milestones

  • Started during TYPO3 CMS 8 development

Goals / Motivation

Generally TSconfig doesn't use types (TEXT, USER, HMENU, etc.) for setting values (below is an example which requires using types)

TS TypoScript:
tt_content.10 = TEXT
tt_content.10.value = top

TSconfig usually looks like this:

TS TypoScript:
options.saveDocNew.tt_content = top

But in some places it uses types. It does e.g.

TS TypoScript:
options.contextMenu.pages_root.items.100 = ITEM
options.contextMenu.pages_root.items.100.name = history

This is misleading and it should be amended to be consistent with the rest of the code.

Concept

The concept consists of several parts:

  1. Add new level to TSconfig e.g.
    options.contextMenu.pages_root.items.100.type = ITEM
    
  2. Change all occurrences in TYPO3 CMS Core and replace it to the new version.
  3. The next step will be removed TypoScriptParser from rendering process of TSconfig.

Implementation Details

Now, we have for contextMenu:

PHP script:
foreach ($actions as $index => $actionConfiguration) {
            if (substr($index, -1) !== '.') {
                $type = $actionConfiguration;
            }
     ...
}

First, we need to add deprecation log and some temporary code with two versions (with type and without) and finally e.g.

PHP script:
foreach ($actions as $index => $actionConfiguration) {
            if (isset($actionConfiguration['type'])) {
                $type = $actionConfiguration['type'];
            }
     ...
}

Risks

This could be a breaking change in some cases, when developers use types in their extensions for TSconfig.

Issues and reviews

Dependencies upon other Blueprints

External links for clarification of technologies