Λειτουργίες 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)}
Βλέπε επίσης filter 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
Επιστρέφει το πρώτο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς:
{=first([1, 2, 3, 4])} {* έξοδοι 1 *}
{=first('abcd')} {* έξοδοι 'a' *}
Βλέπε επίσης last, filter 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}
Βλέπε επίσης ομάδα φίλτρων.
hasBlock (string $name): bool
Ελέγχει αν υπάρχει το μπλοκ με το καθορισμένο όνομα:
{if hasBlock(header)} ... {/if}
Δείτε επίσης τον έλεγχο ύπαρξης μπλοκ.
last (string|array $value): mixed
Επιστρέφει το τελευταίο στοιχείο του πίνακα ή τον τελευταίο χαρακτήρα της συμβολοσειράς:
{=last([1, 2, 3, 4])} {* έξοδοι 4 *}
{=last('abcd')} {* έξοδοι 'd' *}
Βλέπε επίσης first, filter last.
odd (int $value): bool
Ελέγχει αν ο δεδομένος αριθμός είναι περιττός.
{if odd($num)} ... {/if}
slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array
Εξαγάγει μια φέτα ενός πίνακα ή μιας συμβολοσειράς.
{=slice('hello', 1, 2)} {* έξοδοι 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)} {* outputs ['b', 'c'] *}
Το φίλτρο slice λειτουργεί όπως η συνάρτηση array_slice
της PHP για
πίνακες και mb_substr
για συμβολοσειρές με μια υποχώρηση στο
iconv_substr
σε λειτουργία UTF-8.
Εάν η αρχή είναι μη αρνητική, η ακολουθία θα ξεκινήσει από αυτή την αρχή στη μεταβλητή. Εάν το start είναι αρνητικό, η ακολουθία θα ξεκινήσει τόσο μακριά από το τέλος της μεταβλητής.
Αν το length δίνεται και είναι θετικό, τότε η ακολουθία θα έχει μέχρι τόσα στοιχεία. Εάν η μεταβλητή είναι μικρότερη από το μήκος, τότε θα υπάρχουν μόνο τα διαθέσιμα στοιχεία της μεταβλητής. Αν το μήκος δίνεται και είναι αρνητικό, τότε η ακολουθία θα σταματήσει τόσα στοιχεία από το τέλος της μεταβλητής. Αν παραλείπεται, τότε η ακολουθία θα έχει τα πάντα από το offset μέχρι το τέλος της μεταβλητής.
Το φίλτρο θα αναδιατάξει και θα επαναφέρει τα κλειδιά του ακέραιου πίνακα από προεπιλογή. Αυτή η συμπεριφορά μπορεί να αλλάξει θέτοντας το preserveKeys σε true. Τα αλφαριθμητικά κλειδιά διατηρούνται πάντα, ανεξάρτητα από αυτήν την παράμετρο.