Attention

TYPO3 v10 has reached end-of-life as of April 30th 2023 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.

Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.

Singletons

TYPO3 supports the singleton patterns for classes. Singletons are instantiated only once per request regardless of the number of calls to GeneralUtility::makeInstance(). To use a singleton pattern, a class must implement the SingletonInterface:

namespace Vendor\MyNamespace;

class MySingletonClass implements \TYPO3\CMS\Core\SingletonInterface
{
    
}

This interface has no specific methods to implement, but if implemented only one instance of the class will be created through given request.

Be aware that singletons are often considered as "anti pattern" by code architects and should be used with care - use them only if there are very good reasons to do so.