mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 12:32:14 +09:00
Rename internal list and add useful comment
This commit is contained in:
parent
3c401bbc20
commit
325c2c2b13
1 changed files with 12 additions and 8 deletions
|
|
@ -35,12 +35,16 @@ class TemplateParser_v2
|
||||||
/**
|
/**
|
||||||
* Definitions of loop and condition directives.
|
* Definitions of loop and condition directives.
|
||||||
*
|
*
|
||||||
|
* This is not the exhaustive list of Blade-style directives
|
||||||
|
* supported by TemplateParser v2. Other directives may be handled
|
||||||
|
* by individual conversion methods, such as _convertIncludes().
|
||||||
|
*
|
||||||
* %s : Full PHP code passed to the directive in parentheses.
|
* %s : Full PHP code passed to the directive in parentheses.
|
||||||
* %array : The array used in a foreach/forelse loop.
|
* %array : The array used in a foreach/forelse loop.
|
||||||
* %remainder : The remainder of the foreach/forelse loop ($key => $val)
|
* %remainder : The remainder of the foreach/forelse loop ($key => $val)
|
||||||
* %uniq : A random string that identifies a specific loop or condition.
|
* %uniq : A random string that identifies a specific loop or condition.
|
||||||
*/
|
*/
|
||||||
protected static $_loopdef = [
|
protected static $_directives = [
|
||||||
'if' => ['if (%s):', 'endif;'],
|
'if' => ['if (%s):', 'endif;'],
|
||||||
'unless' => ['if (!(%s)):', 'endif;'],
|
'unless' => ['if (!(%s)):', 'endif;'],
|
||||||
'for' => ['for (%s):', 'endfor;'],
|
'for' => ['for (%s):', 'endfor;'],
|
||||||
|
|
@ -508,7 +512,7 @@ class TemplateParser_v2
|
||||||
// Generate the list of directives to match.
|
// Generate the list of directives to match.
|
||||||
if (self::$_directives_regexp === null)
|
if (self::$_directives_regexp === null)
|
||||||
{
|
{
|
||||||
foreach (self::$_loopdef as $directive => $def)
|
foreach (self::$_directives as $directive => $def)
|
||||||
{
|
{
|
||||||
$directive = preg_replace(['#(?<=\w)once$#', '#(?<=\w)if$#'], ['[Oo]nce', '[Ii]f'], $directive);
|
$directive = preg_replace(['#(?<=\w)once$#', '#(?<=\w)if$#'], ['[Oo]nce', '[Ii]f'], $directive);
|
||||||
$directives[] = $directive;
|
$directives[] = $directive;
|
||||||
|
|
@ -544,19 +548,19 @@ class TemplateParser_v2
|
||||||
if ($directive === 'empty' && !$args && !$stack && end($this->_stack)['directive'] === 'forelse')
|
if ($directive === 'empty' && !$args && !$stack && end($this->_stack)['directive'] === 'forelse')
|
||||||
{
|
{
|
||||||
$stack = end($this->_stack);
|
$stack = end($this->_stack);
|
||||||
$code = self::$_loopdef['forelse'][1];
|
$code = self::$_directives['forelse'][1];
|
||||||
$code = strtr($code, ['%uniq' => $stack['uniq'], '%array' => $stack['array'], '%remainder' => $stack['remainder']]);
|
$code = strtr($code, ['%uniq' => $stack['uniq'], '%array' => $stack['array'], '%remainder' => $stack['remainder']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Single directives.
|
// Single directives.
|
||||||
elseif (isset(self::$_loopdef[$directive]) && count(self::$_loopdef[$directive]) === 1)
|
elseif (isset(self::$_directives[$directive]) && count(self::$_directives[$directive]) === 1)
|
||||||
{
|
{
|
||||||
$code = self::$_loopdef[$directive][0];
|
$code = self::$_directives[$directive][0];
|
||||||
$code = str_contains($code, '%s') ? sprintf($code, $args) : $code;
|
$code = str_contains($code, '%s') ? sprintf($code, $args) : $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paired directives.
|
// Paired directives.
|
||||||
elseif (isset(self::$_loopdef[$directive]))
|
elseif (isset(self::$_directives[$directive]))
|
||||||
{
|
{
|
||||||
// Starting directive.
|
// Starting directive.
|
||||||
if (!$stack)
|
if (!$stack)
|
||||||
|
|
@ -577,7 +581,7 @@ class TemplateParser_v2
|
||||||
$remainder = '';
|
$remainder = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$code = self::$_loopdef[$directive][0];
|
$code = self::$_directives[$directive][0];
|
||||||
$code = strtr($code, ['%s' => $args, '%uniq' => $uniq, '%array' => $array, '%remainder' => $remainder]);
|
$code = strtr($code, ['%s' => $args, '%uniq' => $uniq, '%array' => $array, '%remainder' => $remainder]);
|
||||||
$this->_stack[] = [
|
$this->_stack[] = [
|
||||||
'directive' => $directive,
|
'directive' => $directive,
|
||||||
|
|
@ -591,7 +595,7 @@ class TemplateParser_v2
|
||||||
// Ending directive.
|
// Ending directive.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$code = end(self::$_loopdef[$directive]);
|
$code = end(self::$_directives[$directive]);
|
||||||
$code = strtr($code, ['%s' => $stack['args'], '%uniq' => $stack['uniq'], '%array' => $stack['array'], '%remainder' => $stack['remainder']]);
|
$code = strtr($code, ['%s' => $stack['args'], '%uniq' => $stack['uniq'], '%array' => $stack['array'], '%remainder' => $stack['remainder']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue