Funções Latte
Nos templates, além das funções PHP comuns, podemos usar estas outras funções.
Uso
As funções são usadas da mesma forma que as funções PHP comuns e podem ser usadas em todas as expressões:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Funções personalizadas podem ser registadas desta forma:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
No template, é chamado assim:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funções
clamp (int|float $value, int|float $min, int|float $max): int|float
Limita o valor ao intervalo inclusivo especificado de min e max.
{=clamp($level, 0, 255)}
Veja também o filtro clamp.
divisibleBy (int $value, int $by): bool
Verifica se uma variável é divisível por um número.
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
Verifica se um número dado é par.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Retorna o primeiro elemento de um array ou caractere de uma string:
{=first([1, 2, 3, 4])} {* exibe 1 *}
{=first('abcd')} {* exibe 'a' *}
Veja também last, o filtro first.
group (iterable $data, string|int|\Closure $by): array
A função agrupa dados por vários critérios.
Neste exemplo, as linhas da tabela são agrupadas pela coluna categoryId
. A saída é um array de arrays, onde a
chave é o valor na coluna categoryId
. Leia o tutorial
detalhado.
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Veja também o filtro group.
hasBlock (string $name): bool
Verifica se o bloco com o nome especificado existe:
{if hasBlock(header)} ... {/if}
Veja também verificação da existência de blocos.
last (string|array $value): mixed
Retorna o último elemento de um array ou caractere de uma string:
{=last([1, 2, 3, 4])} {* exibe 4 *}
{=last('abcd')} {* exibe 'd' *}
Veja também first, o filtro last.
odd (int $value): bool
Verifica se um número dado é ímpar.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Extrai uma parte de um array ou string.
{=slice('hello', 1, 2)} {* exibe 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* exibe ['b', 'c'] *}
O filtro funciona como a função PHP array_slice
para arrays ou mb_substr
para strings com fallback
para a função iconv_substr
no modo UTF-8.
Se start
for positivo, a sequência começará deslocada por este número a partir do início do array/string. Se
for negativo, a sequência começará deslocada por tanto a partir do fim.
Se o parâmetro length
for especificado e for positivo, a sequência conterá tantos elementos. Se um parâmetro
length
negativo for passado para esta função, a sequência conterá todos os elementos do array original,
começando na posição start
e terminando na posição length
elementos antes do fim do array. Se este
parâmetro não for especificado, a sequência conterá todos os elementos do array original, começando na posição
start
.
Por padrão, o filtro reordena e redefine as chaves inteiras do array. Este comportamento pode ser alterado definindo
preserveKeys
como true
. As chaves de string são sempre preservadas, independentemente deste
parâmetro.