Streamline and simplify configuration in general in TYPO3
TYPO3 is doing a good job at deprecating and removing features, but in the area configuration it seems that more and more is being added and the "old stuff" still exists and is still required, making it even more complicated.
Configuration is an important (I think, a key) feature of TYPO3. This makes it even more important that it is easily usable by developers and integrators. Complicated is sometimes necessary because something is complex, but one must be careful to avoid anything unnecessarily complicated.
There is effort to replace TypoScript / TSconfig etc. with YAML in some places but then you still need TypoScript to load the YAML configuration (e.g. form framework).
What I am missing is one general concept and one general way to configure things. It seems lots of different ways to configure. I realize in some things the scope is different to which it applies, e.g. in TSconfig it applies to users or pages so it must be connected with these.
But I am wondering if some of this could be unified and simplified.
As configuration syntax we are using: XML, YAML, TypoScript syntax, Typoscript constant syntax (which is slightly different), PHP, ..
We are using TypoScript, TSconfig, Extension configuration, PHP arrays (TCA, GlobalConfiguation, Feature toggles), Flexform, and various configurations using YAML (site, rte_ckeditor, form), User settings configuration etc.
It seems to me, TypoSript was regarded as too complicated, now we added YAML and are practically creating another simpler TypoScript. But then we noticed we are missing some things, e.g. constants and now these are being requested as well.
I think some of this could be unified and simplified:
- the configuration in the backend must be changed in various places and can be viewed in various places: TSconfig can be viewed in the info module and changed in the page module in page properties, TypoScript in the TypoScript module, Then we have "settings" where we change some settings and "configuration" where we can view the variables etc.
- There is a mixing up of various configuration languages. In lots of cases, you need to master several to achieve something. While it is cool, that you can override settings in rte_ckeditor (YAML) with page TSconfig, for example, this mixes up 2 different configuration languages. Also, you have to use TypoScript to configure the form configuration, which is in YAML
- Create a generic API as suggested in #85369 for using Yaml unifying various things (where it is stored, how it can be loaded, how files are imported, conditions, constants etc) and make this usable by extensions
- Create a long term (simpler) concept of how configuration it should be and which languages should be used.
- Use a real schema language to define and verify existing configuration (including YAML).
- Make it generally possible to load configuration per installation or per site?
- Take a hard long look at some of the configuration from the point of view of developers who are new to TYPO3