Epic #76862
closedRefactor and modernise the TypoScript content renderer
100%
Description
Goals:
Refactor and modernise the content renderer to a modern architecture, that allows more flexibility and faster development cycles. Modularise the giant class by aspects of separation of concerns. Gain flexibility without loosing speed of execution. Target a test coverage of 100%. Apply PSR-2. Apply rules of encapsulation. Consider TypoScript 2 finally.
Motivation:
Since over a decade there hasn't been much improvements in TypoScript, despite regularly requested for and promised.
Reasons:
- Monolithic character of the class, which makes it difficult to understand the class at all.
- Functions with dozens of lines, what makes it hard to write unit tests.
- Missing unit tests make difficult to change matters, as it is difficult to control the impact.
- Mixture of concerns, hard to understand, to improve parts and to reuse functionality.
- Missing encapsulation. Every internal change brings the risk to break external functionality.
- This creates dependencies from the whole TER and users code, impeding further development.
- Missing object orientation.
Object orientation:
The TypoScript language seems to be a configuration language of objects and PHP is an object orientated language. Still there isn't a full-blown object model below TypoScript. This has already improved over the years, but there is still a lot to do.
One reason for the current solution is performance, as objects are considered to be slow. The creation time of an object is almost zero with PHP 5 and above. Actually objects become slow, when used in the wrong way. By avoiding busy constructors and applying design patterns like singletons and flyweight, object orientation should be able compete in execution time.
Subtasks 118 (0 open — 118 closed)