Γλωσσάριο όρων
AJAX
Ασύγχρονη JavaScript και XML – τεχνολογία για επικοινωνία πελάτη-εξυπηρετητή μέσω του πρωτοκόλλου HTTP χωρίς την ανάγκη επαναφόρτωσης ολόκληρης της σελίδας κατά τη διάρκεια κάθε αίτησης. Παρά το ακρωνύμιο, η μορφή JSON χρησιμοποιείται συχνά αντί της XML.
Δράση παρουσιαστή
Λογικό τμήμα του παρουσιαστή, που εκτελεί μια ενέργεια, όπως για παράδειγμα την εμφάνιση μιας σελίδας προϊόντος, την αποσύνδεση ενός χρήστη κ.λπ. Ένας παρουσιαστής μπορεί να έχει περισσότερες ενέργειες.
BOM
Η λεγόμενη μάσκα τάξης byte είναι ένας ειδικός πρώτος χαρακτήρας ενός αρχείου και υποδεικνύει τη σειρά byte στην κωδικοποίηση. Ορισμένοι επεξεργαστές το περιλαμβάνουν αυτόματα, είναι πρακτικά αόρατο, αλλά προκαλεί προβλήματα με τις επικεφαλίδες και την αποστολή εξόδου μέσα από την PHP. Μπορείτε να χρησιμοποιήσετε τον Code Checker για μαζική αφαίρεση.
Ελεγκτής
Ο ελεγκτής επεξεργάζεται τα αιτήματα του χρήστη και βάσει αυτών καλεί συγκεκριμένη λογική της εφαρμογής (π.χ. μοντέλο), στη συνέχεια καλεί την προβολή για την απόδοση των δεδομένων. Αναλογία με τους ελεγκτές είναι οι παρουσιαστές στο Nette Framework.
Cross-Site Scripting (XSS)
Το Cross-Site Scripting είναι μια μέθοδος διακοπής της λειτουργίας του ιστότοπου που χρησιμοποιεί μη αποθηκευμένη είσοδο. Ένας επιτιθέμενος μπορεί να εισάγει τον δικό του κώδικα HTML ή JavaScript και να αλλάξει την εμφάνιση της σελίδας ή ακόμη και να συλλέξει ευαίσθητες πληροφορίες για τους χρήστες. Η προστασία κατά του XSS είναι απλή: συνεπής και σωστή διαφυγή όλων των συμβολοσειρών και των εισόδων.
Το Nette Framework έρχεται με μια ολοκαίνουργια τεχνολογία Context-Aware Escaping, η οποία θα σας απαλλάξει για πάντα από τους κινδύνους Cross-Site Scripting. Διασφαλίζει αυτόματα όλες τις εισόδους με βάση ένα δεδομένο πλαίσιο, οπότε είναι αδύνατο για έναν προγραμματιστή να ξεχάσει κατά λάθος κάτι.
Πλαστογράφηση αιτήσεων διασταυρούμενης τοποθεσίας (CSRF)
Μια επίθεση Cross-Site Request Forgery είναι ότι ο επιτιθέμενος παρασύρει το θύμα να επισκεφθεί μια σελίδα που εκτελεί σιωπηλά ένα αίτημα στο πρόγραμμα περιήγησης του θύματος προς τον διακομιστή όπου το θύμα είναι συνδεδεμένο αυτή τη στιγμή και ο διακομιστής πιστεύει ότι το αίτημα έγινε από το θύμα κατά βούληση. Ο διακομιστής εκτελεί μια συγκεκριμένη ενέργεια με την ταυτότητα του θύματος αλλά χωρίς το θύμα να το αντιληφθεί. Μπορεί να είναι η αλλαγή ή η διαγραφή δεδομένων, η αποστολή ενός μηνύματος κ.λπ.
Το Nette Framework προστατεύει αυτόματα τις φόρμες και τα σήματα στους παρουσιαστές από αυτόν τον τύπο επίθεσης. Αυτό επιτυγχάνεται με την παρεμπόδιση της αποστολής ή της κλήσης τους από άλλο τομέα.
Εγχώνευση εξάρτησης
Το Dependency Injection (DI) είναι ένα πρότυπο σχεδίασης που σας λέει πώς να διαχωρίσετε τη δημιουργία αντικειμένων από τις εξαρτήσεις τους. Δηλαδή, μια κλάση δεν είναι υπεύθυνη για τη δημιουργία ή την αρχικοποίηση των εξαρτήσεών της, αλλά αντίθετα αυτές οι εξαρτήσεις παρέχονται από εξωτερικό κώδικα (ο οποίος μπορεί να περιλαμβάνει ένα DI container). Το πλεονέκτημα είναι ότι επιτρέπει μεγαλύτερη ευελιξία του κώδικα, καλύτερη αναγνωσιμότητα και ευκολότερο έλεγχο της εφαρμογής, επειδή οι εξαρτήσεις είναι εύκολα αντικαταστάσιμες και απομονωμένες από άλλα μέρη του κώδικα. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Τι είναι το Dependency Injection;
Δοχείο έγχυσης εξαρτήσεων
Ένα Dependency Injection container (επίσης DI container ή IoC container) είναι ένα εργαλείο που χειρίζεται τη δημιουργία και τη διαχείριση των εξαρτήσεων σε μια εφαρμογή (ή υπηρεσίες). Ένας περιέκτης έχει συνήθως μια διαμόρφωση που ορίζει ποιες κλάσεις εξαρτώνται από άλλες κλάσεις, ποιες συγκεκριμένες υλοποιήσεις εξαρτήσεων να χρησιμοποιηθούν και πώς να δημιουργηθούν αυτές οι εξαρτήσεις. Στη συνέχεια, ο περιέκτης δημιουργεί αυτά τα αντικείμενα και τα παρέχει στις κλάσεις που τα χρειάζονται. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Τι είναι ένας περιέκτης DI;
Αποφυγή του
Το escaping είναι η μετατροπή χαρακτήρων με ειδική σημασία σε δεδομένο
πλαίσιο σε άλλες ισοδύναμες ακολουθίες. Παράδειγμα: Θέλουμε να
γράψουμε εισαγωγικά σε συμβολοσειρά με εισαγωγικά. Επειδή τα
εισαγωγικά έχουν ειδική σημασία στο πλαίσιο της συμβολοσειράς που
περικλείεται σε εισαγωγικά, υπάρχει ανάγκη να χρησιμοποιήσουμε μια
άλλη ισοδύναμη ακολουθία. Η συγκεκριμένη ακολουθία καθορίζεται από
τους κανόνες του πλαισίου (π.χ. \"
σε συμβολοσειρά που
περικλείεται σε εισαγωγικά της PHP, "
σε χαρακτηριστικά της
HTML κ.λπ.)
Φίλτρο (πρώην βοηθός)
Λειτουργία φίλτρου. Στα πρότυπα, το φίλτρο είναι μια συνάρτηση που βοηθά στην αλλαγή ή τη μορφοποίηση των δεδομένων στη μορφή εξόδου. Τα πρότυπα έχουν αρκετά τυποποιημένα φίλτρα προκαθορισμένα.
Ακύρωση
Ανακοίνωση ενός αποσπάσματος προς επανεκτέλεση. Σε άλλο πλαίσιο, επίσης, εκκαθάριση μιας προσωρινής μνήμης.
JSON
Μορφή ανταλλαγής δεδομένων βασισμένη στη σύνταξη της JavaScript (είναι υποσύνολό της). Οι ακριβείς προδιαγραφές μπορούν να βρεθούν στη διεύθυνση www.json.org.
Στοιχείο
Επαναχρησιμοποιήσιμο τμήμα μιας εφαρμογής. Μπορεί να είναι ένα οπτικό μέρος μιας σελίδας, όπως περιγράφεται στο κεφάλαιο components, ή ο όρος μπορεί επίσης να αντιπροσωπεύει την κλάση Component (ένα τέτοιο στοιχείο δεν χρειάζεται να είναι οπτικό).
Χαρακτήρες ελέγχου
Οι χαρακτήρες ελέγχου είναι αόρατοι χαρακτήρες, οι οποίοι μπορεί να εμφανιστούν σε ένα κείμενο και τελικά να προκαλέσουν κάποια προβλήματα. Για τη μαζική αφαίρεσή τους από αρχεία, μπορείτε να χρησιμοποιήσετε τον Code Checker, ενώ για την αφαίρεσή τους από μια μεταβλητή χρησιμοποιήστε τη συνάρτηση Strings::normalize().
Γεγονότα
Ένα συμβάν είναι μια αναμενόμενη κατάσταση στο αντικείμενο, η οποία όταν συμβεί, καλούνται οι λεγόμενοι χειριστές, δηλαδή οι ανακλήσεις που αντιδρούν στο συμβάν (δείγμα). Το συμβάν μπορεί να είναι για παράδειγμα η υποβολή φόρμας, η είσοδος χρήστη κ.λπ. Τα συμβάντα αποτελούν έτσι μια μορφή Επιστροφή του ελέγχου.
Για παράδειγμα, μια είσοδος χρήστη συμβαίνει στη μέθοδο
Nette\Security\User::login()
. Το αντικείμενο User
έχει μια δημόσια
μεταβλητή $onLoggedIn
, η οποία είναι ένας πίνακας στον οποίο ο
καθένας μπορεί να προσθέσει μια επανάκληση. Μόλις ο χρήστης συνδεθεί, η
μέθοδος login()
καλεί όλα τα callbacks του πίνακα. Το όνομα μιας
μεταβλητής με τη μορφή onXyz
είναι μια σύμβαση που
χρησιμοποιείται σε όλη τη Nette.
Latte
Ένα από τα πιο καινοτόμα συστήματα template που έχουν υπάρξει ποτέ.
Μοντέλο
Το μοντέλο αποτελεί τη βάση δεδομένων και λειτουργιών ολόκληρης της εφαρμογής. Περιλαμβάνει ολόκληρη τη λογική της εφαρμογής (μερικές φορές αναφέρεται και ως „επιχειρησιακή λογική“). Είναι το M της MVC ή MPV. Οποιαδήποτε ενέργεια του χρήστη (σύνδεση, τοποθέτηση αντικειμένων στο καλάθι, αλλαγή μιας τιμής της βάσης δεδομένων) αντιπροσωπεύει μια ενέργεια του μοντέλου.
Το μοντέλο διαχειρίζεται την εσωτερική του κατάσταση και παρέχει μια δημόσια διεπαφή. Με την κλήση αυτής της διεπαφής μπορούμε να πάρουμε ή να αλλάξουμε την κατάστασή του. Το μοντέλο δεν γνωρίζει την ύπαρξη προβολής ή ελεγκτή, το μοντέλο είναι εντελώς ανεξάρτητο από αυτά.
Μοντέλο-προβολή-ελεγκτής
Αρχιτεκτονική λογισμικού, που εμφανίστηκε στην ανάπτυξη εφαρμογών GUI για να διαχωρίσει τον κώδικα για τον έλεγχο ροής (controller) από τον κώδικα της λογικής της εφαρμογής (model) και από τον κώδικα απόδοσης δεδομένων (view). Με αυτόν τον τρόπο ο κώδικας γίνεται καλύτερα κατανοητός, διευκολύνεται η μελλοντική ανάπτυξη και επιτρέπεται η δοκιμή των ξεχωριστών τμημάτων ξεχωριστά.
Μοντέλο-προβολή-παρουσιαστής
Αρχιτεκτονική βασισμένη στο Model-View-Controller.
Ενότητα
Η ενότητα στο Nette Framework αντιπροσωπεύει μια συλλογή από παρουσιαστές και πρότυπα, ενδεχομένως επίσης συστατικά και μοντέλα, που εξυπηρετούν δεδομένα σε έναν παρουσιαστή. Έτσι, είναι ορισμένο λογικό μέρος μιας εφαρμογής.
Για παράδειγμα, ένα ηλεκτρονικό κατάστημα μπορεί να έχει τρεις ενότητες:
- Κατάλογος προϊόντων με καλάθι.
- Διαχείριση για τον πελάτη.
- Διαχείριση για τον καταστηματάρχη.
Χώρος ονομάτων
Ο χώρος ονομάτων είναι ένα χαρακτηριστικό της γλώσσας PHP από την έκδοση 5.3 και ορισμένων άλλων γλωσσών προγραμματισμού. Βοηθά στην αποφυγή συγκρούσεων ονομάτων (π.χ. δύο κλάσεις με το ίδιο όνομα) όταν χρησιμοποιούνται διαφορετικές βιβλιοθήκες μαζί. Ανατρέξτε στην τεκμηρίωση της PHP για περισσότερες λεπτομέρειες.
Παρουσιαστής
Ο παρουσιαστής είναι ένα αντικείμενο, το οποίο λαμβάνει το αίτημα όπως μεταφράζεται από το δρομολογητή από το αίτημα HTTP και παράγει μια απάντηση. Η απάντηση μπορεί να είναι μια σελίδα HTML, μια εικόνα, ένα έγγραφο XML, ένα αρχείο, ένα JSON, μια ανακατεύθυνση ή ό,τι άλλο σκεφτείτε.
Με τον όρο παρουσιαστής συνήθως εννοείται ένας απόγονος της κλάσης Nette\Application\UI\Presenter. Με τα αιτήματα εκτελεί τις κατάλληλες ενέργειες και αποδίδει τα πρότυπα.
Δρομολογητής
Αμφίδρομος μεταφραστής μεταξύ αιτήματος HTTP / URL και δράσης του παρουσιαστή. Αμφίδρομος σημαίνει ότι δεν είναι μόνο δυνατό να προκύψει μια ενέργεια του παρουσιαστή από το αίτημα HTTP, αλλά και να δημιουργηθεί η κατάλληλη διεύθυνση URL για μια ενέργεια. Δείτε περισσότερα στο κεφάλαιο σχετικά με τη δρομολόγηση URL.
SameSite Cookie
Τα cookies SameSite παρέχουν έναν μηχανισμό αναγνώρισης του τι οδήγησε στη
φόρτωση της σελίδας. Μπορεί να έχει τρεις τιμές: Lax
, Strict
και None
(το τελευταίο απαιτεί HTTPS). Εάν το αίτημα για τη σελίδα
προέρχεται απευθείας από τον ιστότοπο ή ο χρήστης ανοίγει τη σελίδα
πληκτρολογώντας απευθείας στη γραμμή διευθύνσεων ή κάνοντας κλικ σε
έναν σελιδοδείκτη, το πρόγραμμα περιήγησης στέλνει όλα τα cookies στον
διακομιστή (δηλαδή με τις σημαίες Lax
, Strict
και None
).
Εάν ο χρήστης κάνει κλικ στον ιστότοπο μέσω συνδέσμου από άλλον
ιστότοπο, τα cookies με τις σημαίες Lax
και None
διαβιβάζονται
στον διακομιστή. Εάν το αίτημα γίνεται με άλλα μέσα, όπως η υποβολή μιας
φόρμας POST από άλλον ιστότοπο, η φόρτωση μέσα σε ένα iframe, η χρήση JavaScript
κ.λπ., αποστέλλονται μόνο cookies με τη σημαία None
.
Υπηρεσία
Στο πλαίσιο του Dependency Injection, μια υπηρεσία αναφέρεται σε ένα αντικείμενο που δημιουργείται και διαχειρίζεται από ένα DI container. Μια υπηρεσία μπορεί εύκολα να αντικατασταθεί από μια άλλη υλοποίηση, για παράδειγμα για σκοπούς δοκιμών ή για να αλλάξει η συμπεριφορά μιας εφαρμογής, χωρίς να χρειάζεται να τροποποιηθεί ο κώδικας που χρησιμοποιεί την υπηρεσία.
Αποσπάσματα
Απόσπασμα μιας σελίδας, το οποίο μπορεί να επαναπροβληθεί ξεχωριστά κατά τη διάρκεια μιας αίτησης AJAX.
Προβολή
Η προβολή είναι ένα επίπεδο εφαρμογής, το οποίο είναι υπεύθυνο για την απόδοση των αποτελεσμάτων της αίτησης. Συνήθως χρησιμοποιεί ένα σύστημα διαμόρφωσης προτύπων και γνωρίζει, πώς να απεικονίσει τα στοιχεία του ή τα αποτελέσματα που λαμβάνονται από το μοντέλο.