Latte Funktionen
Zusätzlich zu den üblichen PHP-Funktionen können Sie diese auch in Vorlagen verwenden.
Verwendung
Funktionen werden auf die gleiche Weise verwendet wie die üblichen PHP-Funktionen und können in allen Ausdrücken verwendet werden:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Benutzerdefinierte Funktionen können auf diese Weise registriert werden:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Wir verwenden sie in einer Vorlage wie dieser:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Funktionen
clamp (int|float $value, int|float $min, int|float $max): int|float
Gibt einen Wert zurück, der auf den gesamten Bereich von min und max begrenzt ist.
{=clamp($level, 0, 255)}
Siehe auch Filter Klammer:
divisibleBy (int $value, int $by): bool
Prüft, ob eine Variable durch eine Zahl teilbar ist.
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
Prüft, ob die angegebene Zahl gerade ist.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Gibt das erste Element eines Arrays oder ein Zeichen einer Zeichenkette zurück:
{=first([1, 2, 3, 4])} {* gibt 1 *}
{=first('abcd')} {* gibt 'a' *}
Siehe auch last, filter first.
group (iterable $data, string|int|\Closure $by): array
Diese Funktion gruppiert Daten nach verschiedenen Kriterien.
In diesem Beispiel werden die Zeilen in der Tabelle nach der Spalte categoryId
gruppiert. Die Ausgabe ist ein
Array von Feldern, wobei der Schlüssel der Wert in der Spalte categoryId
ist. Lesen Sie die ausführliche Anleitung.
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Siehe auch Filtergruppe.
hasBlock (string $name): bool
Prüft, ob der Block mit dem angegebenen Namen existiert:
{if hasBlock(header)} ... {/if}
Siehe auch Blockexistenzprüfung.
last (string|array $value): mixed
Gibt das letzte Element eines Arrays oder ein Zeichen einer Zeichenkette zurück:
{=last([1, 2, 3, 4])} {* gibt 4 *}
{=last('abcd')} {* gibt 'd' *}
Siehe auch first, filter last.
odd (int $value): bool
Prüft, ob die angegebene Zahl ungerade ist.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Extrahiert einen Ausschnitt aus einem Array oder einer Zeichenkette.
{=slice('hello', 1, 2)} {* gibt 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* gibt ['b', 'c'] *}
Der Slice-Filter funktioniert wie die PHP-Funktion array_slice
für Arrays und mb_substr
für Strings
mit einem Fallback auf iconv_substr
im UTF-8-Modus.
Wenn start nicht negativ ist, beginnt die Sequenz an diesem Anfang in der Variablen. Wenn start negativ ist, beginnt die Sequenz so weit vom Ende der Variablen entfernt.
Wenn length angegeben wird und positiv ist, wird die Sequenz bis zu dieser Anzahl von Elementen enthalten. Wenn die Variable kürzer als die Länge ist, werden nur die verfügbaren Elemente der Variablen angezeigt. Wenn length angegeben wird und negativ ist, endet die Sequenz so viele Elemente vor dem Ende der Variablen. Wird sie weggelassen, enthält die Sequenz alle Elemente vom Offset bis zum Ende der Variablen.
Filter ordnet die Schlüssel des Integer-Arrays standardmäßig neu an und setzt sie zurück. Dieses Verhalten kann geändert werden, indem preserveKeys auf true gesetzt wird. String-Schlüssel werden immer beibehalten, unabhängig von diesem Parameter.