Функции на Latte

В допълнение към обичайните функции на PHP можете да ги използвате и в шаблони.

clamp притискане на стойност в диапазон
divisibleBy проверява дали дадена променлива се дели на дадено число
even проверява дали дадено число е четно число
first връща първия елемент на масив или символен низ
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|array $value)mixed

Връща първия елемент на масив или символен низ:

{=first([1, 2, 3, 4])}    {* списъци 1 *}
{=first('abcd')}          {* списъци 'a' *}

Вижте също последно, първо филтриране.

hasBlock(string $name): bool

Проверява дали блокът със зададеното име съществува:

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

Вижте също проверка на съществуването на блока.

last(string|array $value)mixed

Връща последния елемент на масив или символен низ:

{=last([1, 2, 3, 4])}    {* списъци 4 *}
{=last('abcd')}          {* списъци 'd' *}

Вижте също първи, последен филтър.

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'] *}

Филтърът за парчета работи като функцията на PHP array_slice за масиви и mb_substr за низове, като се връща към iconv_substr в режим UTF-8.

Ако start е неотрицателно число, последователността ще започне от това начало в променлива. Ако началната стойност е отрицателна, последователността ще започне на това разстояние от края на променливата.

Ако е зададена дължина и тя е положителна, последователността ще съдържа до този брой елементи. Ако променливата е по-къса от дължината, ще бъдат представени само наличните елементи на променливата. Ако е зададена дължина и тя е отрицателна, последователността ще спре на толкова елемента от края на променливата. Ако не е зададена дължина, последователността ще съдържа всички елементи от отместването до края на променливата.

Филтърът по подразбиране пренарежда и нулира ключовете на масив от цели числа. Това поведение може да бъде променено чрез задаване на preserveKeys на true. Ключовете на низове винаги се запазват, независимо от този параметър.

версия: 3.0