Attention
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.
Service-related API¶
This section describes the methods of the TYPO3 CMS core that are related to the use of services.
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility¶
This extension management class contains three methods related to services:
- addService
This method is used to register services with TYPO3 CMS. It checks for availability of a service with regards to OS dependency (if any) and fills the
$GLOBALS['T3_SERVICES']
array, where information about all registered services is kept.- findService
This method is used to find the appropriate service given a type and a subtype. It handles priority and quality rankings. It also checks for availability based on executables dependencies, if any.
This method is normally called by
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstanceService()
, so you shouldn't have to worry about calling it directly, but it can be useful to check if there's at least one service available.- deactivateService
Marks a service as unavailable. It is called internally by
addService()
andfindService()
and should probably not be called directly unless you're sure of what you're doing.
\TYPO3\CMS\Core\Utility\GeneralUtility¶
This class contains a single method related to services, but the most useful one, used to get an instance of a service.
- makeInstanceService
This method is used to get an instance of a service class of a given type and subtype. It calls on
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::findService()
to find the best possible service (in terms of priority and quality).As described above it keeps a registry of all instantiated service classes and uses existing instances whenever possible, in effect turning service classes into singletons.