Nette Documentation Preview

syntax
Функції Latte
*************

.[perex]
На додаток до звичайних функцій PHP, ви можете використовувати їх у шаблонах.

.[table-latte-filters]
| `clamp` | [затискає значення в діапазон |#clamp]
| `divisibleBy`| [перевіряє, чи ділиться змінна на число |#divisibleBy]
| `even` | [перевіряє, чи є дане число парним |#even]
| `first` | [повертає перший елемент масиву або символ рядка |#first]
| `hasBlock` | [виявляє наявність блоку |#hasBlock]
| `last` | [pповертає останній елемент масиву або символ рядка |#last]
| `odd` | [перевіряє, чи є дане число непарним |#odd]
| `slice` | [витягує фрагмент масиву або рядка |#slice]


Використання .[#toc-usage]
==========================

Функції використовуються так само, як і звичайні функції PHP, і можуть бути використані у всіх виразах:

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

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

[Користувацькі функції |extending-latte#Functions] можуть бути зареєстровані таким чином:

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

Ми використовуємо його в шаблоні таким чином:

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


Функції .[#toc-functions]
=========================


clamp(int|float $value, int|float $min, int|float $max): int|float .[method]
----------------------------------------------------------------------------
Повертає значення, затиснуте у включно діапазоні min і max.

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

Див. також [затиск фільтра |filters#clamp]:


divisibleBy(int $value, int $by): bool .[method]
------------------------------------------------
Перевіряє, чи ділиться змінна на число.

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


even(int $value): bool .[method]
--------------------------------
Перевіряє, чи є задане число парним.

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


first(string|array $value): mixed .[method]
-------------------------------------------
Повертає перший елемент масиву або символ рядка:

```latte
{=first([1, 2, 3, 4])}    {* виводить 1 *}
{=first('abcd')}          {* виводиться 'a' *}
```

Див. також [last |#last], [filter first |filters#first].


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Перевіряє, чи існує блок з вказаною назвою:

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

Див. також [перевірка існування блоку |template-inheritance#Checking Block Existence].


last(string|array $value): mixed .[method]
------------------------------------------
Повертає останній елемент масиву або символ рядка:

```latte
{=last([1, 2, 3, 4])}    {* виводиться 4 *}
{=last('abcd')}          {* виводиться 'd' *}
```

Див. також [first |#first], [filter last |filters#last].


odd(int $value): bool .[method]
-------------------------------
Перевіряє, чи є задане число непарним.

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


slice(string|array $value, int $start, int $length=null, bool $preserveKeys=false): string|array .[method]
----------------------------------------------------------------------------------------------------------
Витягує фрагмент масиву або рядка.

```latte
{=slice('hello', 1, 2)} {* виводиться 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* виводить ['b', 'c'] *}
```

Фільтр зрізів працює як функція `array_slice` PHP для масивів і `mb_substr` для рядків із поверненням до `iconv_substr` у режимі UTF-8.

Якщо start невід'ємний, то послідовність почнеться з цього початку в змінній. Якщо start від'ємний, то послідовність почнеться на такій-то відстані від кінця змінної.

Якщо задано довжину і вона позитивна, то послідовність міститиме до цієї кількості елементів. Якщо змінна коротша за довжину, то будуть присутні тільки доступні елементи змінної. Якщо довжина задана і від'ємна, то послідовність зупиниться на стільки елементів від кінця змінної. Якщо довжина не вказана, то послідовність міститиме всі елементи від зміщення до кінця змінної.

Filter за замовчуванням упорядковує і скидає ключі цілочисельного масиву. Цю поведінку можна змінити, встановивши preserveKeys в true. Рядкові ключі завжди зберігаються, незалежно від цього параметра.

Функції Latte

На додаток до звичайних функцій PHP, ви можете використовувати їх у шаблонах.

clamp затискає значення в діапазон
divisibleBy перевіряє, чи ділиться змінна на число
even перевіряє, чи є дане число парним
first повертає перший елемент масиву або символ рядка
hasBlock виявляє наявність блоку
last pповертає останній елемент масиву або символ рядка
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|array $value)mixed

Повертає перший елемент масиву або символ рядка:

{=first([1, 2, 3, 4])}    {* виводить 1 *}
{=first('abcd')}          {* виводиться 'a' *}

Див. також last, filter first.

hasBlock(string $name): bool

Перевіряє, чи існує блок з вказаною назвою:

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

Див. також перевірка існування блоку.

last(string|array $value)mixed

Повертає останній елемент масиву або символ рядка:

{=last([1, 2, 3, 4])}    {* виводиться 4 *}
{=last('abcd')}          {* виводиться '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)} {* виводиться 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* виводить ['b', 'c'] *}

Фільтр зрізів працює як функція array_slice PHP для масивів і mb_substr для рядків із поверненням до iconv_substr у режимі UTF-8.

Якщо start невід'ємний, то послідовність почнеться з цього початку в змінній. Якщо start від'ємний, то послідовність почнеться на такій-то відстані від кінця змінної.

Якщо задано довжину і вона позитивна, то послідовність міститиме до цієї кількості елементів. Якщо змінна коротша за довжину, то будуть присутні тільки доступні елементи змінної. Якщо довжина задана і від'ємна, то послідовність зупиниться на стільки елементів від кінця змінної. Якщо довжина не вказана, то послідовність міститиме всі елементи від зміщення до кінця змінної.

Filter за замовчуванням упорядковує і скидає ключі цілочисельного масиву. Цю поведінку можна змінити, встановивши preserveKeys в true. Рядкові ключі завжди зберігаються, незалежно від цього параметра.