Συναρτήσεις Latte
Στα πρότυπα, εκτός από τις συνήθεις συναρτήσεις PHP, μπορούμε να χρησιμοποιήσουμε και αυτές τις πρόσθετες συναρτήσεις.
Χρήση
Οι συναρτήσεις χρησιμοποιούνται ακριβώς όπως οι συνήθεις συναρτήσεις PHP και μπορούν να χρησιμοποιηθούν σε όλες τις εκφράσεις:
<p>{clamp($num, 1, 100)}</p>
{if odd($num)} ... {/if}
Προσαρμοσμένες συναρτήσεις μπορούν να εγγραφούν με αυτόν τον τρόπο:
$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Στο πρότυπο, καλείται στη συνέχεια ως εξής:
<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>
Συναρτήσεις
clamp (int|float $value, int|float $min, int|float $max): int|float
Περιορίζει την τιμή στο δεδομένο εύρος min και max (συμπεριλαμβανομένων).
{=clamp($level, 0, 255)}
Δείτε επίσης το φίλτρο clamp.
divisibleBy (int $value, int $by): bool
Ελέγχει αν μια μεταβλητή είναι διαιρετή με έναν αριθμό.
{if divisibleBy($num, 5)} ... {/if}
even (int $value): bool
Ελέγχει αν ένας δεδομένος αριθμός είναι ζυγός.
{if even($num)} ... {/if}
first (string|iterable $value): mixed
Επιστρέφει το πρώτο στοιχείο ενός πίνακα ή τον πρώτο χαρακτήρα ενός string:
{=first([1, 2, 3, 4])} {* εκτυπώνει 1 *}
{=first('abcd')} {* εκτυπώνει 'a' *}
Δείτε επίσης last, φίλτρο first.
group (iterable $data, string|int|\Closure $by): array
Η συνάρτηση ομαδοποιεί δεδομένα με βάση διάφορα κριτήρια.
Σε αυτό το παράδειγμα, οι γραμμές στον πίνακα ομαδοποιούνται με βάση
τη στήλη categoryId
. Η έξοδος είναι ένας πίνακας πινάκων, όπου το
κλειδί είναι η τιμή στη στήλη categoryId
. Διαβάστε τον αναλυτικό οδηγό.
{foreach group($items, categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Δείτε επίσης το φίλτρο group.
hasBlock (string $name): bool
Ελέγχει αν υπάρχει το μπλοκ με το δεδομένο όνομα:
{if hasBlock(header)} ... {/if}
Δείτε επίσης τον έλεγχο ύπαρξης μπλοκ.
last (string|array $value): mixed
Επιστρέφει το τελευταίο στοιχείο ενός πίνακα ή τον τελευταίο χαρακτήρα ενός string:
{=last([1, 2, 3, 4])} {* εκτυπώνει 4 *}
{=last('abcd')} {* εκτυπώνει 'd' *}
Δείτε επίσης first, φίλτρο last.
odd (int $value): bool
Ελέγχει αν ένας δεδομένος αριθμός είναι περιττός.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Εξάγει ένα τμήμα ενός πίνακα ή ενός string.
{=slice('hello', 1, 2)} {* εκτυπώνει 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* εκτυπώνει ['b', 'c'] *}
Η συνάρτηση λειτουργεί όπως η συνάρτηση PHP array_slice
για πίνακες ή
mb_substr
για strings με εναλλακτική λύση τη συνάρτηση iconv_substr
σε
λειτουργία UTF-8.
Εάν η αρχή είναι θετική, η ακολουθία θα ξεκινήσει μετατοπισμένη κατά αυτόν τον αριθμό από την αρχή του πίνακα/string. Εάν είναι αρνητική, η ακολουθία θα ξεκινήσει μετατοπισμένη κατά τόσο από το τέλος.
Εάν η παράμετρος length καθοριστεί και είναι θετική, η ακολουθία θα περιέχει τόσα στοιχεία. Εάν σε αυτή τη συνάρτηση περάσει μια αρνητική παράμετρος length, η ακολουθία θα περιέχει όλα τα στοιχεία του αρχικού πίνακα, ξεκινώντας από τη θέση start και τελειώνοντας στη θέση μικρότερη κατά length στοιχεία από το τέλος του πίνακα. Εάν δεν καθορίσετε αυτήν την παράμετρο, η ακολουθία θα περιέχει όλα τα στοιχεία του αρχικού πίνακα, ξεκινώντας από τη θέση start.
Από προεπιλογή, η συνάρτηση αλλάζει τη σειρά και επαναφέρει τα ακέραια κλειδιά του πίνακα. Αυτή η συμπεριφορά μπορεί να αλλάξει ορίζοντας το preserveKeys σε true. Τα κλειδιά string διατηρούνται πάντα, ανεξάρτητα από αυτήν την παράμετρο.