ラテ機能
PHPの一般的な関数に加え、テンプレートでも使用することができます。
clamp |
値を範囲にクランプする |
divisibleBy |
ある変数がある数値で割り切れるかどうかをチェックします |
even |
与えられた数値が偶数かどうかをチェックします |
first |
配列の最初の要素または文字列の文字を返します |
group |
様々な基準に従ってデータをグループ 化する |
hasBlock |
ブロックの存在を検出する |
last |
配列の最後の要素、または文字列の文字を返す |
odd |
与えられた数が奇数かどうかをチェックする |
slice |
配列または文字列のスライスを抽出します |
使用法
関数は一般的なPHPの関数と同じように使用され、すべての式で使用することができます。
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
カスタム関数は、この方法で登録することができます。
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
このようなテンプレートで使用します。
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
機能
clamp (int|float $value, int|float $min, int|float $max): int|float
minとmaxを含む範囲にクランプされた値を返します。
{=clamp($level, 0, 255)}
フィルタクランプの項も参照。
divisibleBy (int $value, int $by): bool
変数がある数値で割り切れるかどうかをチェックする。
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
与えられた数字が偶数かどうかをチェックする。
{if even($num)} ... {/if}
first (string|iterable $value): mixed
配列の最初の要素、または文字列の1文字を返します。
{=first([1, 2, 3, 4])} {* outputs 1 *}
{=first('abcd')} {* outputs 'a' *}
last,filter first も参照してください。
group (iterable $data, string|int|\Closure $by): array
この関数は、異なる基準に従ってデータをグループ化します。
この例では、テーブルの行が列categoryId
によってグループ化されています。出力は、列categoryId
の値をキーとするフィールドの配列です。詳細な説明をお読みください。
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
filtergroupも参照。
hasBlock (string $name): bool
指定された名前のブロックが存在するかどうかをチェックする:
{if hasBlock(header)} ... {/if}
ブロック存在チェックも参照のこと。
last (string|array $value): mixed
配列の最後の要素または文字列の文字を返します。
{=last([1, 2, 3, 4])} {* outputs 4 *}
{=last('abcd')} {* outputs 'd' *}
first,filter last も参照してください。
odd (int $value): bool
与えられた数字が奇数かどうかをチェックする。
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
配列または文字列のスライスを抽出します。
{=slice('hello', 1, 2)} {* outputs 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* outputs ['b', 'c'] *}
このスライスフィルタは、配列に対してはarray_slice
PHP
関数として、文字列に対してはmb_substr
として動作し、UTF-8
モードではiconv_substr
にフォールバックします。
start が負でない場合、シーケンスは変数内のその位置から始まります。start が負の場合は、シーケンスは変数の終端からその距離だけ離れたところから始まります。
length が正の値であれば,シーケンスはその要素数までとなる。もし変数が length よりも短ければ、利用可能な変数の要素だけが存在することになります。もし length が負数なら、シーケンスは変数の終端からその数だけ要素を持つことになります。もし length が省略された場合は、offset から変数の終わりまでがシーケンスに含まれます。
Filter は、デフォルトで整数の配列のキーを並べ替え、リセットします。この挙動は、preserveKeys を true に設定することで変更可能です。文字列のキーは、このパラメータに関係なく、常に保存されます。