Funzioni del latte
Oltre alle comuni funzioni PHP, è possibile utilizzarle anche nei template.
Utilizzo
Le funzioni sono utilizzate allo stesso modo delle comuni funzioni PHP e possono essere usate in tutte le espressioni:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Le funzioni personalizzate possono essere registrate in questo modo:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Le usiamo in un modello come questo:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funzioni
clamp(int|float $value, int|float $min, int|float $max): int|float
Restituisce un valore limitato all'intervallo compreso tra min e max.
{=clamp($level, 0, 255)}
Vedere anche filtro clamp:
divisibleBy(int $value, int $by): bool
Verifica se una variabile è divisibile per un numero.
{if divisibleBy($num, 5)} ... {/if}
even(int $value): bool
Verifica se il numero dato è pari.
{if even($num)} ... {/if}
first(string|array $value): mixed
Restituisce il primo elemento di una matrice o un carattere di una stringa:
{=first([1, 2, 3, 4])} {* uscite 1 *}
{=first('abcd')} {* uscite 'a' *}
Vedere anche last, filter first.
last(string|array $value): mixed
Restituisce l'ultimo elemento della matrice o il carattere della stringa:
{=last([1, 2, 3, 4])} {* uscite 4 *}
{=last('abcd')} {* uscite 'd' *}
Vedere anche first, filter last.
odd(int $value): bool
Controlla se il numero dato è dispari.
{if odd($num)} ... {/if}
slice(string|array $value, int $start, int $length=null, bool $preserveKeys=false): string|array
Estrae una fetta di un array o di una stringa.
{=slice('hello', 1, 2)} {* output 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* output ['b', 'c'] *}
Il filtro slice funziona come la funzione PHP array_slice
per gli array e mb_substr
per le stringhe
con un fallback a iconv_substr
in modalità UTF-8.
Se start è non negativo, la sequenza inizierà da quell'inizio nella variabile. Se start è negativo, la sequenza inizierà a quella distanza dalla fine della variabile.
Se la lunghezza è data ed è positiva, la sequenza conterrà fino a quel numero di elementi. Se la variabile è più corta della lunghezza, saranno presenti solo gli elementi disponibili della variabile. Se la lunghezza è data ed è negativa, la sequenza si fermerà a tanti elementi dalla fine della variabile. Se viene omesso, la sequenza conterrà tutti gli elementi dall'offset fino alla fine della variabile.
Per impostazione predefinita, Filter riordina e reimposta le chiavi dell'array di interi. Questo comportamento può essere modificato impostando preserveKeys su true. Le chiavi stringa vengono sempre conservate, indipendentemente da questo parametro.