Simple usage
The most basic use is when you want an object that handles a given service type:
if (is_object($serviceObject = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstanceService('textLang'))) {
$language = $serviceObject->guessLanguage($text);
}
In this example a service of type "textLang" is requested. If such a
service is indeed available an object will be returned. Then the
guess
- which would be part of the "textLang" service
type public API - is called.
There's no certainty that an object will be returned, for a number of reasons:
- there might be no service of the requested type installed
- the service deactivated itself during registration because it recognized it can't run on your platform
- the service was deactivated by the system because of certain checks
- during initialization the service checked that it can't run and deactivated itself
Note that when a service is requested, the instance created is stored in a global registry. If that service is requested again during the same code run, the stored instance will be returned instead of a new one. More details in Service API.
If several services are available, the one with the highest priority (or quality if priority are equals) will be used.