Latte Fonksiyonları

Yaygın PHP işlevlerine ek olarak, bunları şablonlarda da kullanabilirsiniz.

clamp değeri aralığa sıkıştırır
divisibleBy bir değişkenin bir sayıya bölünebilir olup olmadığını kontroleder
even verilen sayının çift olup olmadığını kontroleder
first dizinin ilk elemanını veya karakter dizisini döndürür
group verileri çeşitli kriterlere göre gruplar
hasBlock bir bloğun varlığını tespit eder
last dizinin son elemanını veya karakter dizisini döndürür
odd verilen sayının tek olup olmadığını kontroleder
slice bir dizi veya dizenin bir dilimini çıkarır

Kullanım

İşlevler, yaygın PHP işlevleriyle aynı şekilde kullanılır ve tüm ifadelerde kullanılabilir:

<p>{clamp($num, 1, 100)}</p>

{if odd($num)} ... {/if}

Özel fonksiyonlar bu şekilde kaydedilebilir:

$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));

Bunun gibi bir şablonda kullanırız:

<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>

Fonksiyonlar

clamp (int|float $value, int|float $min, int|float $max): int|float

Min ve maks. dahil aralığına sıkıştırılmış değeri döndürür.

{=clamp($level, 0, 255)}

Ayrıca bkz. filtre kelepçesi:

divisibleBy (int $value, int $by)bool

Bir değişkenin bir sayıya bölünebilir olup olmadığını kontrol eder.

{if divisibleBy($num, 5)} ... {/if}

even (int $value): bool

Verilen sayının çift olup olmadığını kontrol eder.

{if even($num)} ... {/if}

first (string|iterable $value)mixed

Dizinin ilk elemanını veya karakter dizisini döndürür:

{=first([1, 2, 3, 4])}    {* çıktılar 1 *}
{=first('abcd')}          {* çıktılar 'a' *}

Ayrıca bkz. last, filter first.

group (iterable $data, string|int|\Closure $by)array

Bu fonksiyon verileri farklı kriterlere göre gruplandırır.

Bu örnekte, tablodaki satırlar categoryId sütununa göre gruplandırılmıştır. Çıktı, anahtarın categoryId sütunundaki değer olduğu bir alan dizisidir. Ayrıntılı talimatları okuyun.

{foreach group($items, categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}

Ayrıca bkz. filtre grubu.

hasBlock (string $name): bool

Belirtilen addaki bloğun var olup olmadığını kontrol eder:

{if hasBlock(header)} ... {/if}

Ayrıca bkz. blok varlık kontrolü.

last (string|array $value)mixed

Dizinin son elemanını veya karakter dizisini döndürür:

{=last([1, 2, 3, 4])}    {* çıkışlar 4 *}
{=last('abcd')}          {* çıktılar 'd' *}

Ayrıca bkz. ilk, son filtre.

odd (int $value): bool

Verilen sayının tek olup olmadığını kontrol eder.

{if odd($num)} ... {/if}

slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array

Bir dizinin veya dizginin bir dilimini çıkarır.

{=slice('hello', 1, 2)} {* çıktılar 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* çıktılar ['b', 'c'] *}

Dilim süzgeci, diziler için array_slice PHP işlevi ve dizeler için mb_substr işlevi olarak çalışır ve UTF-8 kipinde iconv_substr işlevine geri döner.

Başlangıç negatif değilse, dizi değişkendeki o başlangıçtan başlayacaktır. Başlangıç negatifse, dizi değişkenin sonundan o kadar uzakta başlayacaktır.

Uzunluk verilmişse ve pozitifse, dizinin içinde o kadar eleman olacaktır. Değişken uzunluktan daha kısaysa, yalnızca mevcut değişken öğeleri mevcut olacaktır. Uzunluk verilirse ve negatifse, dizi değişkenin sonundan itibaren o kadar elemanla duracaktır. Atlanırsa, dizi ofsetten değişkenin sonuna kadar her şeye sahip olacaktır.

Filtre, varsayılan olarak tamsayı dizi anahtarlarını yeniden sıralar ve sıfırlar. Bu davranış preserveKeys öğesi true olarak ayarlanarak değiştirilebilir. Dize anahtarları bu parametreden bağımsız olarak her zaman korunur.

versiyon: 3.0