TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.

You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.

Handling Deprecation

This section describes the rules to follow for removing existing functions or parameters from TYPO3 CMS. The general principle is that functions or parameters are removed two major versions after they were set to be deprecated.

To start the deprecation process for a parameter of a TYPO3 CMS core function, please mark it within the phpDoc param part:

 * ...
 * @param string DEPRECATED since TYPO3 CMS 9 - is not used anymore because...
 * ...

For a whole function inside one of the TYPO3 CMS core classes, use the phpDoc @deprecated annotation:

 * ...
 * @return ...
 * @deprecated

At the beginning of the deprecated function you must add the following code:

trigger_error('since TYPO3 CMS 9, will be removed in TYPO3 CMS 10, use FUNCNAME instead', E_USER_DEPRECATED);

It is also possible to deprecate finer-grained elements, such as TypoScript or TSconfig properties. In such a case, a log message can be used inside the code itself:

if ($fooBar !== null) {
   trigger_error('A useful message', E_USER_DEPRECATED);
   $this->useFooBar = true;

Anyone can submit a patch to remove deprecated elements.