Latte 関数
テンプレートでは、通常の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)}
参照 clampフィルタ。
divisibleBy (int $value, int $by): bool
変数が数値で割り切れるかどうかをチェックします。
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
指定された数値が偶数かどうかをチェックします。
{if even($num)} ... {/if}
first (string|iterable $value): mixed
配列の最初の要素または文字列の最初の文字を返します:
{=first([1, 2, 3, 4])} {* 1 を出力 *}
{=first('abcd')} {* 'a' を出力 *}
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}
参照 groupフィルタ。
hasBlock (string $name): bool
指定された名前のブロックが存在するかどうかを確認します:
{if hasBlock(header)} ... {/if}
参照 ブロックの存在チェック。
last (string|array $value): mixed
配列の最後の要素または文字列の最後の文字を返します:
{=last([1, 2, 3, 4])} {* 4 を出力 *}
{=last('abcd')} {* 'd' を出力 *}
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)} {* 'el' を出力 *}
{=slice(['a', 'b', 'c'], 1, 2)} {* ['b', 'c'] を出力 *}
この関数は、配列の場合はPHP関数 array_slice
として、文字列の場合は mb_substr
として機能し、UTF‑8 モードでは iconv_substr
関数へのフォールバックがあります。
start
が正の場合、シーケンスは配列/文字列の先頭からこの数だけオフセットされて開始します。負の場合、シーケンスは末尾からそれだけオフセットされて開始します。
length
パラメータが指定され、正の場合、シーケンスにはその数の要素が含まれます。この関数に負の
length
パラメータが渡された場合、シーケンスには元の配列のすべての要素が含まれ、start
位置から開始し、配列の末尾から length
要素少ない位置で終了します。このパラメータを指定しない場合、シーケンスには元の配列のすべての要素が含まれ、start
位置から開始します。
デフォルトでは、この関数は順序を変更し、配列の整数キーをリセットします。この動作は、preserveKeys
を true
に設定することで変更できます。文字列キーは、このパラメータに関係なく常に保持されます。