Nette Documentation Preview

syntax
Latte Fonksiyonları
*******************

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

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


Kullanım .[#toc-usage]
======================

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

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

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

[Özel fonksiyonlar |extending-latte#functions] bu şekilde kaydedilebilir:

```php
$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:

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


Fonksiyonlar .[#toc-functions]
==============================


clamp(int|float $value, int|float $min, int|float $max): int|float .[method]
----------------------------------------------------------------------------
Min ve maks. dahil aralığına sıkıştırılmış değeri döndürür.

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

Ayrıca bkz. [filtre kelepçesi |filters#clamp]:


divisibleBy(int $value, int $by): bool .[method]
------------------------------------------------
Bir değişkenin bir sayıya bölünebilir olup olmadığını kontrol eder.

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


even(int $value): bool .[method]
--------------------------------
Verilen sayının çift olup olmadığını kontrol eder.

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


first(string|iterable $value): mixed .[method]
----------------------------------------------
Dizinin ilk elemanını veya karakter dizisini döndürür:

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

Ayrıca bkz. [last |#last], [filter first |filters#first].


group(iterable $data, string|int|\Closure $by): array .[method]{data-version:3.0.16}
------------------------------------------------------------------------------------
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ı |cookbook/grouping] okuyun.

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

Ayrıca bkz. filtre [grubu |filters#group].


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Belirtilen addaki bloğun var olup olmadığını kontrol eder:

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

Ayrıca bkz. [blok varlık kontrolü |template-inheritance#Checking Block Existence].


last(string|array $value): mixed .[method]
------------------------------------------
Dizinin son elemanını veya karakter dizisini döndürür:

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

Ayrıca bkz. [ilk |#first], [son filtre |filters#last].


odd(int $value): bool .[method]
-------------------------------
Verilen sayının tek olup olmadığını kontrol eder.

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


slice(string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array .[method]
-----------------------------------------------------------------------------------------------------------
Bir dizinin veya dizginin bir dilimini çıkarır.

```latte
{=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.

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.