ラテ機能

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 に設定することで変更可能です。文字列のキーは、このパラメータに関係なく、常に保存されます。

version: 3.0