Thunder\Shortcode\Processor\Processor::processHandler PHP Method

processHandler() private method

private processHandler ( Thunder\Shortcode\Shortcode\ParsedShortcodeInterface $parsed, Thunder\Shortcode\Processor\ProcessorContext $context, $handler )
$parsed Thunder\Shortcode\Shortcode\ParsedShortcodeInterface
$context Thunder\Shortcode\Processor\ProcessorContext
    private function processHandler(ParsedShortcodeInterface $parsed, ProcessorContext $context, $handler)
    {
        $processed = ProcessedShortcode::createFromContext(clone $context);
        $content = $this->processRecursion($processed, $context);
        $processed = $processed->withContent($content);
        if ($handler) {
            return call_user_func_array($handler, array($processed));
        }
        $state = $parsed->getText();
        $length = mb_strlen($processed->getTextContent(), 'utf-8');
        $offset = mb_strrpos($state, $processed->getTextContent(), 'utf-8');
        return mb_substr($state, 0, $offset, 'utf-8') . $processed->getContent() . mb_substr($state, $offset + $length, mb_strlen($state, 'utf-8'), 'utf-8');
    }