Latte Fonksiyonları
Yaygın PHP işlevlerine ek olarak, bunları şablonlarda da kullanabilirsiniz.
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.