LightnCandy\Validator::inlinePartial PHP Method

inlinePartial() protected static method

validate inline partial begin token
protected static inlinePartial ( array\arraystring | integer> &$context, arrayinteger | string | array> $vars ) : boolean | null
$context array\arraystring | integer>
$vars arrayinteger | string | array>
return boolean | null Return true when inline partial ends
    protected static function inlinePartial(&$context, $vars)
    {
        if (count($context['inlinepartial']) > 0) {
            $ended = false;
            $append = $context['currentToken'][Token::POS_LOTHER] . $context['currentToken'][Token::POS_LSPACE];
            array_walk($context['inlinepartial'], function (&$pb) use($context, $append) {
                $pb .= $append;
            });
            if ($context['currentToken'][Token::POS_OP] === '/') {
                if (static::blockEnd($context, $vars, '#*') !== null) {
                    $context['usedFeature']['inlpartial']++;
                    $tmpl = array_shift($context['inlinepartial']);
                    $c = $context['stack'][count($context['stack']) - 4];
                    $context['parsed'][0] = array_slice($context['parsed'][0], 0, $c + 1);
                    $P =& $context['parsed'][0][$c];
                    if (isset($P[1][1][0])) {
                        $context['usedPartial'][$P[1][1][0]] = $tmpl;
                        $P[1][0][0] = Partial::compileDynamic($context, $P[1][1][0]);
                    }
                    $ended = true;
                }
            }
            $append = Token::toString($context['currentToken']);
            array_walk($context['inlinepartial'], function (&$pb) use($context, $append) {
                $pb .= $append;
            });
            return $ended;
        }
    }