Retaining compatibility to TYPO3 CMS 6

Categories: Development, Documentation Created by Mathias Schreiber
Maintaining compatibility between several TYPO3 versions can get tricky. But we have come up with a very simple way to make it easier for you.

The initial situation

When we released TYPO3 CMS 6.2 LTS we shipped a sophisticated compatibility layer to keep your old TYPO3 extensions running on our new codebase.
While this layer offered a great deal of convenience it also has some drawbacks - most of them performance related.
So naturally, 6.2 LTS cannot run at its full potential because we wanted to allow extension authors to have enough time to migrate to the new codebase.
We took this step knowing that this would “punish” the people who wrote their code “by the book” and were willing to adapt to the new code-style, because our legacy stakeholders needed more time to get their extension code up and working with the new codebase.

What’s up on CMS 7?

With CMS 7 we will no longer offer this compatibility layer out of the box. If you install a clean master of CMS 7 you will notice a drastic increase in rendering speed both in the frontend as well as in the backend.
You see, this is a good opportunity to use our new codebase - it’s cleaner, it’s faster, it’s more fun.

But I need to...

But what do you do if you have a project running that is just in the brink of a relaunch or simply too big to upgrade?
Well, you could of course go with CMS 6.2 LTS - you’ll get the full support length with bugfixes and security patches… On the other hand you can continue with CMS 7 and make use of the CMS 6 compatibility extension for backward compatibility.
You will suffer the performance drawbacks, because they are implicated by principle - we can’t change that. But on the other hand you get all the neat new things from CMS 7.
And, most importantly, you have a choice which road to take.
We will keep updating the extension compatibility6 during our current cleanup phase by moving the compatibility layer from the TYPO3 CMS core into EXT:compatibility6.
Currently the extension will ship with the core but as soon as we finished cleaning up we will move the extension into the TER.
Your own extensions can use the compatibility6 extension as a requirement in case you need to stick to the old way of doing things although we strongly discourage to do so.
Think of the compatibility6 extension as your last resort when everything else goes wrong.
Once the move to TER has been finished (which is planned around spring 2015) we won’t continue to update the extension - simply because it won’t be needed.