Add loop variable and dump directive; reorganize template v2 unit tests

This commit is contained in:
Kijin Sung 2023-10-17 20:12:22 +09:00
parent fe804163bf
commit a6afa3a61d
7 changed files with 394 additions and 41 deletions

View file

@ -28,14 +28,14 @@
<?php endif; ?>
</div>
<?php $__tmp_8eaec5a37bc467 = Context::get('bar') ?? []; if($__tmp_8eaec5a37bc467): foreach ($__tmp_8eaec5a37bc467 as $__Context->k => $__Context->val): ?>
<?php $__tmp_RANDOM_LOOP_ID = Context::get('bar') ?? []; if($__tmp_RANDOM_LOOP_ID): $__loop_RANDOM_LOOP_ID = $this->_v2_initLoopVar("RANDOM_LOOP_ID", $__tmp_RANDOM_LOOP_ID); foreach ($__tmp_RANDOM_LOOP_ID as $__Context->k => $__Context->val): ?>
<div>
<?php if (empty($__Context->nosuchvar)): ?>
<img src="/rhymix/tests/_data/template/bar/rhymix.svg" alt="unit tests are cool" />
<span <?php if ($__Context->k >= 2): ?>class="<?php echo htmlspecialchars($__Context->val ?? '', \ENT_QUOTES, 'UTF-8', false); ?>"<?php endif; ?>></span>
<?php endif; ?>
</div>
<?php endforeach; else: ?><div>Nothing here...</div><?php endif; ?>
<?php $this->_v2_incrLoopVar($__loop_RANDOM_LOOP_ID); endforeach; $this->_v2_removeLoopVar($__loop_RANDOM_LOOP_ID); unset($__loop_RANDOM_LOOP_ID); else: ?><div>Nothing here...</div><?php endif; ?>
<?php (function($__dir, $__path, $__vars, $__varname, $__empty = null) { if (!$__vars): $__vars = []; if ($__empty): $__path = $__empty; $__vars[] = ''; endif; endif; foreach ($__vars as $__var): $__tpl = new \Rhymix\Framework\Template($__dir, $__path, "html"); $__tpl->setVars([(string)$__varname => $__var]); echo $__tpl->compile(); endforeach; })($this->relative_dirname, 'incl/eachtest', $__Context->bar, 'var'); ?>
<?php (function($__dir, $__path, $__vars, $__varname, $__empty = null) { if (!$__vars): $__vars = []; if ($__empty): $__path = $__empty; $__vars[] = ''; endif; endif; foreach ($__vars as $__var): $__tpl = new \Rhymix\Framework\Template($__dir, $__path, "html"); $__tpl->setVars([(string)$__varname => $__var]); echo $__tpl->compile(); endforeach; })($this->relative_dirname, 'incl/eachtest', [], 'anything', 'incl/empty'); ?>

View file

@ -0,0 +1,179 @@
<h1>Pets</h1>
<ul>
<li>
<span>A red dog</span>
<span>current index 0 of 5</span>
<span>parent index 0 of 5</span>
<span>first: bool(true)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A red cat</span>
<span>current index 1 of 5</span>
<span>parent index 0 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A red rabbit</span>
<span>current index 2 of 5</span>
<span>parent index 0 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A red panda</span>
<span>current index 3 of 5</span>
<span>parent index 0 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A red otter</span>
<span>current index 4 of 5</span>
<span>parent index 0 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(true)</span>
</li>
<li>
<span>A blue dog</span>
<span>current index 0 of 5</span>
<span>parent index 1 of 5</span>
<span>first: bool(true)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A blue cat</span>
<span>current index 1 of 5</span>
<span>parent index 1 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A blue rabbit</span>
<span>current index 2 of 5</span>
<span>parent index 1 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A blue panda</span>
<span>current index 3 of 5</span>
<span>parent index 1 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A blue otter</span>
<span>current index 4 of 5</span>
<span>parent index 1 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(true)</span>
</li>
<li>
<span>A yellow dog</span>
<span>current index 0 of 5</span>
<span>parent index 2 of 5</span>
<span>first: bool(true)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A yellow cat</span>
<span>current index 1 of 5</span>
<span>parent index 2 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A yellow rabbit</span>
<span>current index 2 of 5</span>
<span>parent index 2 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A yellow panda</span>
<span>current index 3 of 5</span>
<span>parent index 2 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A yellow otter</span>
<span>current index 4 of 5</span>
<span>parent index 2 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(true)</span>
</li>
<li>
<span>A black dog</span>
<span>current index 0 of 5</span>
<span>parent index 3 of 5</span>
<span>first: bool(true)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A black cat</span>
<span>current index 1 of 5</span>
<span>parent index 3 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A black rabbit</span>
<span>current index 2 of 5</span>
<span>parent index 3 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A black panda</span>
<span>current index 3 of 5</span>
<span>parent index 3 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A black otter</span>
<span>current index 4 of 5</span>
<span>parent index 3 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(true)</span>
</li>
<li>
<span>A white dog</span>
<span>current index 0 of 5</span>
<span>parent index 4 of 5</span>
<span>first: bool(true)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A white cat</span>
<span>current index 1 of 5</span>
<span>parent index 4 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A white rabbit</span>
<span>current index 2 of 5</span>
<span>parent index 4 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A white panda</span>
<span>current index 3 of 5</span>
<span>parent index 4 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(false)</span>
</li>
<li>
<span>A white otter</span>
<span>current index 4 of 5</span>
<span>parent index 4 of 5</span>
<span>first: bool(false)</span>
<span>last: bool(true)</span>
</li>
</ul>

View file

@ -0,0 +1,22 @@
@version(2)
@php
$foo = ['red', 'blue', 'yellow', 'black', 'white'];
$bar = ['dog', 'cat', 'rabbit', 'panda', 'otter'];
@endphp
<h1>Pets</h1>
<ul>
@foreach ($foo as $color)
@foreach ($bar as $animal)
<li>
<span>A {{ $color }} {{ $animal }}</span>
<span>current index {{ $loop->index }} of {{ $loop->count }}</span>
<span>parent index {{ $loop->parent->index }} of {{ $loop->parent->count }}</span>
<span>first: @dump($loop->first)</span>
<span>last: @dump($loop->last)</span>
</li>
@endforeach
@endforeach
</ul>