protected function getFormatter($formatterType)
    {
        $foundFormatter = false;
        $formatterType = ltrim($formatterType, '\\');

        if (isset($this->formatters[$formatterType])) {
            $foundFormatter = $this->formatters[$formatterType];
        }

        if ($foundFormatter === false) {
            if ($this->objectManager->isRegistered($formatterType)) {
                $possibleClassName = $formatterType;
            } else {
                $possibleClassName = sprintf('Neos\Flow\I18n\Formatter\%sFormatter', ucfirst($formatterType));
                if (!$this->objectManager->isRegistered($possibleClassName)) {
                    throw new Exception\UnknownFormatterException('Could not find formatter for "' . $formatterType . '".', 1278057791);
                }
            }
            if (!$this->reflectionService->isClassImplementationOf($possibleClassName, Formatter\FormatterInterface::class)) {
                throw new Exception\InvalidFormatterException(sprintf('The resolved internationalization formatter class name "%s" does not implement "%s" as required.', $possibleClassName, FormatterInterface::class), 1358162557);
            }
            $foundFormatter = $this->objectManager->get($possibleClassName);
        }

        $this->formatters[$formatterType] = $foundFormatter;
        return $foundFormatter;
    }
protected function getFormatter($formatterType)
    {
        $foundFormatter = false;
        $formatterType = ltrim($formatterType, '\\');

        if (isset($this->formatters[$formatterType])) {
            $foundFormatter = $this->formatters[$formatterType];
        }

        if ($foundFormatter === false) {
            if ($this->objectManager->isRegistered($formatterType)) {
                $possibleClassName = $formatterType;
            } else {
                $possibleClassName = sprintf('Neos\Flow\I18n\Formatter\%sFormatter', ucfirst($formatterType));
                if (!$this->objectManager->isRegistered($possibleClassName)) {
                    throw new Exception\UnknownFormatterException('Could not find formatter for "' . $formatterType . '".', 1278057791);
                }
            }
            if (!$this->reflectionService->isClassImplementationOf($possibleClassName, Formatter\FormatterInterface::class)) {
                throw new Exception\InvalidFormatterException(sprintf('The resolved internationalization formatter class name "%s" does not implement "%s" as required.', $possibleClassName, FormatterInterface::class), 1358162557);
            }
            $foundFormatter = $this->objectManager->get($possibleClassName);
        }

        $this->formatters[$formatterType] = $foundFormatter;
        return $foundFormatter;
    }
protected function getFormatter ( $ formatterType ) { $ foundFormatter = false ; $ formatterType = ltrim ( $ formatterType , '\\' ) ; if ( isset ( $ this -> formatters [ $ formatterType ] ) ) { $ foundFormatter = $ this -> formatters [ $ formatterType ] ; } if ( $ foundFormatter === false ) { if ( $ this -> objectManager -> isRegistered ( $ formatterType ) ) { $ possibleClassName = $ formatterType ; } else { $ possibleClassName = sprintf ( 'Neos\Flow\I18n\Formatter\%sFormatter' , ucfirst ( $ formatterType ) ) ; if ( ! $ this -> objectManager -> isRegistered ( $ possibleClassName ) ) { throw new Exception \ UnknownFormatterException ( 'Could not find formatter for "' . $ formatterType . '".' , 1278057791 ) ; } } if ( ! $ this -> reflectionService -> isClassImplementationOf ( $ possibleClassName , Formatter \ FormatterInterface :: class ) ) { throw new Exception \ InvalidFormatterException ( sprintf ( 'The resolved internationalization formatter class name "%s" does not implement "%s" as required.' , $ possibleClassName , FormatterInterface :: class ) , 1358162557 ) ; } $ foundFormatter = $ this -> objectManager -> get ( $ possibleClassName ) ; } $ this -> formatters [ $ formatterType ] = $ foundFormatter ; return $ foundFormatter ; }
Returns instance of concrete formatter.

The type provided has to be either a name of existing class placed in
I18n\Formatter namespace or a fully qualified class name;
in both cases implementing this' package's FormatterInterface.
For example, when $formatterName is 'number',
the I18n\Formatter\NumberFormatter class has to exist; when
$formatterName is 'Acme\Foobar\I18nFormatter\SampleFormatter', this class
must exist and implement I18n\Formatter\FormatterInterface.

Throws exception if there is no formatter for name given or one could be
retrieved but does not satisfy the FormatterInterface.

@param string $formatterType Either one of the built-in formatters or fully qualified formatter class name
@return Formatter\FormatterInterface The concrete formatter class
@throws Exception\UnknownFormatterException When formatter for a name given does not exist
@throws Exception\InvalidFormatterException When formatter for a name given does not exist
Returns instance of concrete formatter .