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:

EXT:some_extension/Classes/MySingletonClass.php
namespace Vendor\SomeExtension;

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

This interface has no methods to implement.

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.