Latte funkciók

Az általános PHP-funkciók mellett ezeket is használhatod a sablonokban.

clamp az értéket a tartományba szorítja
divisibleBy ellenőrzi, hogy egy változó osztható-e egy számmal
even ellenőrzi, hogy a megadott szám páros-e
first visszaadja a tömb első elemét vagy a karakterlánc első karakterét
group adatok csoportosítása különböző kritériumok szerint
hasBlock érzékeli egy blokk létezését
last visszaadja a tömb utolsó elemét vagy a karakterlánc utolsó karakterét
odd ellenőrzi, hogy az adott szám páratlan-e
slice kivonja egy tömb vagy egy karakterlánc egy szeletét

Használat

A függvények ugyanúgy használhatók, mint az általános PHP függvények, és minden kifejezésben használhatók:

<p>{clamp($num, 1, 100)}</p>

{if odd($num)} ... {/if}

Egyéni függvények így regisztrálhatók:

$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));

Egy sablonban így használjuk:

<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>

Funkciók

clamp (int|float $value, int|float $min, int|float $max): int|float

Visszaadja a min és max tartományba szorított értéket.

{=clamp($level, 0, 255)}

Lásd még szűrőbilincs:

divisibleBy (int $value, int $by)bool

Ellenőrzi, hogy egy változó osztható-e egy számmal.

{if divisibleBy($num, 5)} ... {/if}

even (int $value): bool

Ellenőrzi, hogy az adott szám páros-e.

{if even($num)} ... {/if}

first (string|iterable $value)mixed

Visszaadja a tömb első elemét vagy a karakterlánc első karakterét:

{=first([1, 2, 3, 4])}    {* kimenet 1 *}
{=first('abcd')}          {* kimenet 'a' *}

Lásd még last, filter first.

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

Ez a funkció különböző kritériumok szerint csoportosítja az adatokat.

Ebben a példában a táblázat sorait a categoryId oszlop alapján csoportosítja. A kimenet egy mezőkből álló tömb, ahol a kulcs a categoryId oszlopban szereplő érték. Olvassa el a részletes utasításokat.

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

Lásd még szűrőcsoport.

hasBlock (string $name): bool

Ellenőrzi, hogy a megadott nevű blokk létezik-e:

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

Lásd még a blokk létezésének ellenőrzése.

last (string|array $value)mixed

A tömb utolsó elemét vagy a karakterlánc utolsó karakterét adja vissza:

{=last([1, 2, 3, 4])}    {* 4 kimenet *}
{=last('abcd')}          {* kimenet 'd' *}

Lásd még first, filter last.

odd (int $value): bool

Ellenőrzi, hogy a megadott szám páratlan-e.

{if odd($num)} ... {/if}

slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array

Kivonja egy tömb vagy egy karakterlánc egy szeletét.

{=slice('hello', 1, 2)} {* kimenet 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* kimenet ['b', 'c'] *}

A slice-szűrő a array_slice PHP-funkcióként működik tömbök esetében, a mb_substr pedig karakterláncok esetében, UTF-8 módban pedig a iconv_substr funkcióra való visszalépéssel.

Ha a kezdet nem negatív, akkor a szekvencia a változóban ezzel a kezdőponttal kezdődik. Ha a start negatív, akkor a szekvencia a változó végétől ilyen messze kezdődik.

Ha a length értéke pozitív, akkor a szekvencia legfeljebb ennyi elemet tartalmaz. Ha a változó rövidebb, mint a hossz, akkor csak a rendelkezésre álló változóelemek lesznek jelen. Ha a hossz meg van adva és negatív, akkor a sorozat ennyi elemmel a változó vége előtt fog megállni. Ha nem adjuk meg, akkor a szekvencia az eltolódástól a változó végéig mindent tartalmazni fog.

A Filter alapértelmezés szerint átrendezi és visszaállítja az integer tömb kulcsát. Ez a viselkedés megváltoztatható a preserveKeys true értékre állításával. A string kulcsok ettől a paramétertől függetlenül mindig megmaradnak.

verzió: 3.0