On our long journey to Five Zero Final we have now reached an exciting leg: the land of TypoScript. Originally the implementation of a version 2 of the TypoScript syntax was scheduled for Milestone 3, which is scarcely visible at the horizon. But as we decided to bring the development of the Model-View-Controller framework forward, I needed a real world scenario for actually using it. And what is more real in the context of TYPO3 CMS than TypoScript - after all it will be the most important client of the MVC implementation.
Therefore I compiled all the notes I took during the brainstormings for an improved syntax and started experimenting with possible PHP implementations of TypoScript objects. A good source of inspiration has also been the TypoScript session at the last TYPO3 Developer Days in Dietikon. And so I wrote down chunks of TypoScript again and again and throwed it to whom I could get a grip on via Skype. It was interesting to hear how TypoScript veterans interpreted the new coding style and how they felt about the changes in the syntax.
Finally I wrote a little chapter for The Guide (that is the TYPO3 5.0 documentation) which explains the TypoScript syntax how I (currently) imagine in to be for a version 2. As you read it, many parts will sound very familiar and probably didn't change at all. Other features, such as the "processors", are based on well known concepts (stdWrap in that case) and finally there are some completely new concepts like variables and namespaces which slipped into the specification.
In my eyes, the biggest improvement in TypoScript 2.0 is that it is finally truly object oriented and consistent. This allows for a variety of helpful features, such as syntax highlighting, validation and auto completion in your favorite IDE.
The initial draft is now subject to discussion in the 5.0 mailing list. Probably a lot of background information about the actual implementation is missing, but as the concept gets more mature, we'll also close that gap. We're not in a hurry finding a final compromise, but in general, we'd like to avoid lengthy discussions about details. Therefore we try to focus on the concept rather than on the small things (although tiny details like naming conventions can be an important concept, too ...).
I would like to invite you to give us feedback about the modified syntax. How do you feel about it? What do you like most, what would you change? Please just send me an email with your statement - the 5.0 dev team will then evaluate your input and consider it for the next versions of the specification.
Finally, you are of course invited to read or join our discussions in the TYPO3 5.0 General Discussion mailing list.
I rarley use TYPO3 and I am barley able to express myself in TS, but In my view it would be very nice if the new TS would differenciate between object creation and mere value assignment to object attributes.
Writing:
blafurz = new Text
blafurz.value = "Hallo"
is imho way clearer than not distinguishing between those two.
Just my 2¢,
cheers Albrecht
PS: May be there are good reasons not to make this step - I'd be happy to know about them :).