Funzioni del latte

Oltre alle comuni funzioni PHP, è possibile utilizzarle anche nei template.

clamp blocca il valore all'intervallo
divisibleBy controlla se una variabile è divisibile per un numero
even controlla se il numero dato è pari
first restituisce il primo elemento di un array o un carattere di una stringa
group raggruppa i dati secondo vari criteri
hasBlock rileva l'esistenza di un blocco
last restituisce l'ultimo elemento di un array o un carattere di una stringa
odd controlla se il numero dato è dispari
slice estrae una fetta di un array o di una stringa

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|iterable $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.

group (iterable $data, string|int|\Closure $by)array

Questa funzione raggruppa i dati in base a diversi criteri.

In questo esempio, le righe della tabella sono raggruppate in base alla colonna categoryId. L'output è una matrice di campi in cui la chiave è il valore della colonna categoryId. Leggete le istruzioni dettagliate.

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

Vedere anche gruppo di filtri.

hasBlock (string $name): bool

Controlla se il blocco con il nome specificato esiste:

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

Si veda anche il controllo dell'esistenza del blocco.

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.

versione: 3.0