Funções do Latte
Além das funções comuns do PHP, você também pode usá-las em modelos.
Utilização
As funções são usadas da mesma forma que as funções comuns do PHP e podem ser usadas em todas as expressões:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
As funções personalizadas podem ser registradas desta forma:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Usamo-lo em um modelo como este:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funções
clamp (int|float $value, int|float $min, int|float $max): int|float
Retorna o valor fixado para a faixa inclusiva de min e max.
{=clamp($level, 0, 255)}
Veja também a braçadeira do filtro:
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 o número dado é igual.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Devolve o primeiro elemento de matriz ou caráter de corda:
{=first([1, 2, 3, 4])} {* resultados 1 *}
{=first('abcd')} {* resultados 'a' *}
Ver também por último, filtrar primeiro.
group (iterable $data, string|int|\Closure $by): array
Essa função agrupa dados de acordo com diferentes critérios.
Neste exemplo, as linhas da tabela são agrupadas pela coluna categoryId
. O resultado é uma matriz de campos em
que a chave é o valor da coluna categoryId
. Leia as instruções detalhadas.
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Consulte também grupo de filtros.
hasBlock (string $name): bool
Verifica se o bloco com o nome especificado existe:
{if hasBlock(header)} ... {/if}
Consulte também verificação de existência de bloco.
last (string|array $value): mixed
Retorna o último elemento de matriz ou caráter de corda:
{=last([1, 2, 3, 4])} {* saídas 4 *}
{=last('abcd')} {* saídas 'd' *}
Ver também primeiro, filtrar por último.
odd (int $value): bool
Verifica se o número dado é estranho.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Extrai uma fatia de uma matriz ou um fio.
{=slice('hello', 1, 2)} {* resultados 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* resultados ['b', 'c'] *}
O filtro de fatias funciona como a função PHP array_slice
para arrays e mb_substr
para strings com
um fallback para iconv_substr
no modo UTF-8.
Se o início for não negativo, a seqüência começará nesse início na variável. Se o início for negativo, a seqüência começará tão longe do final da variável.
Se o comprimento for dado e for positivo, então a seqüência terá até muitos elementos nele. Se a variável for menor do que o comprimento, então somente os elementos variáveis disponíveis estarão presentes. Se o comprimento for dado e for negativo, então a seqüência interromperá que muitos elementos do final da variável. Se for omitido, então a seqüência terá tudo desde o offset até o final da variável.
O filtro reordenará e redefinirá as chaves da matriz inteira por padrão. Este comportamento pode ser alterado ajustando preserveKeys para true. As chaves de string são sempre preservadas, independentemente deste parâmetro.