Τύπος συστήματος
Το σύστημα τύπων είναι το κύριο πράγμα για την ανάπτυξη εύρωστων εφαρμογών. Το Latte φέρνει την υποστήριξη τύπων στα πρότυπα. Για να γνωρίζετε τι τύπος δεδομένων ή αντικειμένου είναι κάθε μεταβλητή επιτρέπει
- IDE να συμπληρώνει σωστά αυτόματα (βλ. ενσωμάτωση και πρόσθετα)
- στατική ανάλυση για τον εντοπισμό σφαλμάτων
Δύο σημεία που βελτιώνουν σημαντικά την ποιότητα και την ευκολία της ανάπτυξης.
Οι δηλωμένοι τύποι είναι πληροφοριακοί και η Latte δεν τους ελέγχει προς το παρόν.
Πώς να αρχίσετε να χρησιμοποιείτε τύπους; Δημιουργήστε μια πρότυπη
κλάση, π.χ. CatalogTemplateParameters
, που να αναπαριστά τις παραμέτρους που
περνούν:
class CatalogTemplateParameters
{
public function __construct(
public string $langs,
/** @var ProductEntity[] */
public array $products,
public Address $address,
) {}
}
$latte->render('template.latte', new CatalogTemplateParameters(
address: $userAddress,
lang: $settings->getLanguage(),
products: $entityManager->getRepository('Product')->findAll(),
));
Στη συνέχεια, εισάγετε την ετικέτα {templateType}
με το πλήρες όνομα
της κλάσης (συμπεριλαμβανομένου του χώρου ονομάτων) στην αρχή του
προτύπου. Αυτό ορίζει ότι θα υπάρχουν μεταβλητές $langs
και
$products
στο πρότυπο συμπεριλαμβανομένων των αντίστοιχων τύπων.
Μπορείτε επίσης να καθορίσετε τους τύπους των τοπικών μεταβλητών
χρησιμοποιώντας ετικέτες {var}
, {varType}
και {define}
.
Τώρα το IDE μπορεί να κάνει σωστή αυτόματη συμπλήρωση.
Πώς να αποθηκεύσετε την εργασία; Πώς να γράψετε μια κλάση προτύπου ή
τις ετικέτες {varType}
όσο το δυνατόν πιο εύκολα; Πάρτε τα που
δημιουργούνται. Αυτό ακριβώς κάνει το ζεύγος ετικετών {templatePrint}
και {varPrint}
. Αν τοποθετήσετε μία από αυτές τις ετικέτες σε ένα
πρότυπο, ο κώδικας της κλάσης ή του προτύπου εμφανίζεται αντί της
κανονικής απόδοσης. Στη συνέχεια, απλά επιλέξτε και αντιγράψτε τον
κώδικα στο έργο σας.
{templateType}
Οι τύποι των παραμέτρων που περνούν στο πρότυπο δηλώνονται με τη χρήση class:
{templateType MyApp\CatalogTemplateParameters}
{varType}
Πώς δηλώνουμε τύπους μεταβλητών; Για το σκοπό αυτό χρησιμοποιήστε
την ετικέτα {varType}
για μια υπάρχουσα μεταβλητή, ή {var}
:
{varType Nette\Security\User $user}
{varType string $lang}
{templatePrint}
Μπορείτε επίσης να δημιουργήσετε αυτή την κλάση χρησιμοποιώντας την
ετικέτα {templatePrint}
. Αν την τοποθετήσετε στην αρχή του προτύπου,
εμφανίζεται ο κώδικας της κλάσης αντί του κανονικού προτύπου. Στη
συνέχεια, απλά επιλέξτε και αντιγράψτε τον κώδικα στο έργο σας.
{varPrint}
Η ετικέτα {varPrint}
σας εξοικονομεί χρόνο. Εάν την τοποθετήσετε σε
ένα πρότυπο, εμφανίζεται η λίστα των ετικετών {varType}
αντί της
κανονικής απόδοσης. Στη συνέχεια, απλά επιλέξτε και αντιγράψτε τον
κώδικα στο πρότυπό σας.
Η ετικέτα {varPrint}
απαριθμεί τοπικές μεταβλητές που δεν είναι
παράμετροι του προτύπου. Αν θέλετε να παραθέσετε όλες τις μεταβλητές,
χρησιμοποιήστε το {varPrint all}
.