Γλωσσάριο όρων

AJAX

Asynchronous JavaScript and XML – τεχνολογία ανταλλαγής πληροφοριών μεταξύ πελάτη και διακομιστή μέσω του πρωτοκόλλου HTTP χωρίς την ανάγκη επαναφόρτωσης ολόκληρης της σελίδας σε κάθε αίτημα. Αν και το όνομα μπορεί να υποδηλώνει ότι στέλνει δεδομένα μόνο σε μορφή XML, χρησιμοποιείται συνήθως και η μορφή JSON.

Action (presenter)

Λογικό τμήμα του presenter που εκτελεί μία ενέργεια. Για παράδειγμα, εμφανίζει τη σελίδα ενός προϊόντος, αποσυνδέει τον χρήστη κ.λπ. Ένας presenter μπορεί να έχει πολλαπλές ενέργειες (actions).

BOM

Το λεγόμενο byte order mark είναι ένας ειδικός πρώτος χαρακτήρας σε ένα αρχείο που χρησιμοποιείται ως δείκτης της σειράς των bytes στην κωδικοποίηση. Ορισμένοι επεξεργαστές τον εισάγουν στα αρχεία. Είναι πρακτικά αόρατος, αλλά προκαλεί προβλήματα με την αποστολή εξόδου και κεφαλίδων από την PHP. Για μαζική αφαίρεση μπορείτε να χρησιμοποιήσετε το Code Checker.

Controller

Ελεγκτής που επεξεργάζεται τα αιτήματα του χρήστη και βάσει αυτών καλεί την κατάλληλη λογική της εφαρμογής (δηλ. το model) και στη συνέχεια ζητά από το view την απόδοση των δεδομένων. Αντίστοιχοι των controllers στο Nette Framework είναι οι presenters.

Cross-Site Scripting (XSS)

Το Cross-Site Scripting είναι μια μέθοδος παραβίασης ιστοσελίδων που εκμεταλλεύεται μη επεξεργασμένες εξόδους. Ο εισβολέας μπορεί στη συνέχεια να εισάγει τον δικό του κώδικα στη σελίδα και έτσι να την τροποποιήσει ή ακόμη και να αποκτήσει ευαίσθητα δεδομένα για τους επισκέπτες. Η άμυνα κατά του XSS είναι δυνατή μόνο με τη συνεπή και σωστή επεξεργασία όλων των strings.

Το Nette Framework έρχεται με την επαναστατική τεχνολογία Context-Aware Escaping, η οποία σας απαλλάσσει για πάντα από τον κίνδυνο του Cross-Site Scripting. Επεξεργάζεται όλες τις εξόδους αυτόματα και έτσι δεν μπορεί να συμβεί ο κωδικοποιητής να ξεχάσει κάτι.

Cross-Site Request Forgery (CSRF)

Η επίθεση Cross-Site Request Forgery συνίσταται στο ότι ο εισβολέας δελεάζει το θύμα σε μια σελίδα που εκτελεί διακριτικά ένα αίτημα στον διακομιστή στον οποίο είναι συνδεδεμένο το θύμα, στον περιηγητή του θύματος, και ο διακομιστής πιστεύει ότι το αίτημα εκτελέστηκε από το θύμα με τη θέλησή του. Και έτσι, υπό την ταυτότητα του θύματος, εκτελεί μια συγκεκριμένη ενέργεια χωρίς να το γνωρίζει. Μπορεί να είναι αλλαγή ή διαγραφή δεδομένων, αποστολή μηνύματος κ.λπ.

Το Nette Framework προστατεύει αυτόματα τις φόρμες και τα σήματα στους presenters από αυτόν τον τύπο επίθεσης. Και αυτό εμποδίζοντας την αποστολή ή την κλήση τους από άλλο domain.

Dependency Injection

Το Dependency Injection (DI) είναι ένα σχεδιαστικό πρότυπο που καθορίζει πώς να διαχωρίσετε τη δημιουργία αντικειμένων από τις εξαρτήσεις τους. Δηλαδή, η κλάση δεν είναι υπεύθυνη για τη δημιουργία ή την αρχικοποίηση των εξαρτήσεών της, αλλά αντίθετα αυτές οι εξαρτήσεις της παρέχονται από εξωτερικό κώδικα (αυτός μπορεί να είναι και ένας DI container). Το πλεονέκτημα είναι ότι επιτρέπει μεγαλύτερη ευελιξία στον κώδικα, καλύτερη κατανόηση και ευκολότερο έλεγχο της εφαρμογής, καθώς οι εξαρτήσεις είναι εύκολα αντικαταστάσιμες και απομονωμένες από τα υπόλοιπα μέρη του κώδικα. Περισσότερα στο κεφάλαιο Τι είναι το Dependency Injection?

Dependency Injection container

Ένας Dependency Injection container (επίσης DI container ή IoC container) είναι ένα εργαλείο που διαχειρίζεται τη δημιουργία και τη διαχείριση των εξαρτήσεων σε μια εφαρμογή (δηλαδή των υπηρεσιών). Ο container έχει συνήθως μια διαμόρφωση που ορίζει ποιες κλάσεις εξαρτώνται από άλλες κλάσεις, ποιες συγκεκριμένες υλοποιήσεις εξαρτήσεων πρέπει να χρησιμοποιηθούν και πώς πρέπει να δημιουργηθούν αυτές οι εξαρτήσεις. Στη συνέχεια, ο container δημιουργεί αυτά τα αντικείμενα και τα παρέχει στις κλάσεις που τα χρειάζονται. Περισσότερα στο κεφάλαιο Τι είναι ένας DI container?

Escaping

Το Escaping είναι η μετατροπή χαρακτήρων που έχουν ειδική σημασία σε ένα δεδομένο πλαίσιο σε άλλες αντίστοιχες ακολουθίες. Παράδειγμα: θέλουμε να γράψουμε εισαγωγικά σε ένα string που οριοθετείται από εισαγωγικά. Δεδομένου ότι τα εισαγωγικά έχουν ειδική σημασία στο πλαίσιο του string και η απλή γραφή τους θα ερμηνευόταν ως τερματισμός του string, είναι απαραίτητο να γραφτούν με μια άλλη αντίστοιχη ακολουθία. Το ποια ακριβώς καθορίζεται από τους κανόνες του πλαισίου.

Filter (previously helper)

Στα πρότυπα, ο όρος φίλτρο συνήθως αναφέρεται σε μια συνάρτηση που βοηθά στην τροποποίηση ή την αναδιαμόρφωση των δεδομένων στην τελική τους μορφή. Τα πρότυπα διαθέτουν αρκετά standard filters.

Invalidation

Ειδοποίηση ενός snippet για να επανασχεδιαστεί. Με άλλη έννοια, επίσης διαγραφή του περιεχομένου της cache.

JSON

Μορφή ανταλλαγής δεδομένων που βασίζεται στη σύνταξη της JavaScript (είναι υποσύνολό της). Την ακριβή προδιαγραφή θα βρείτε στη σελίδα www.json.org.

Component

Επαναχρησιμοποιήσιμο στοιχείο της εφαρμογής. Μπορεί να είναι ένα οπτικό τμήμα της σελίδας, όπως περιγράφει το κεφάλαιο Γράφοντας Components, ή ο όρος component αναφέρεται επίσης στην κλάση Component (ένα τέτοιο component δεν χρειάζεται να είναι οπτικό).

Control characters

Οι χαρακτήρες ελέγχου είναι αόρατοι χαρακτήρες που μπορεί να εμφανίζονται στο κείμενο και ενδεχομένως να προκαλούν προβλήματα. Για τη μαζική αφαίρεσή τους από αρχεία μπορείτε να χρησιμοποιήσετε το Code Checker και για την αφαίρεσή τους από μια μεταβλητή τη συνάρτηση Strings::normalize().

Events

Ένα event είναι μια αναμενόμενη κατάσταση σε ένα αντικείμενο, η οποία όταν συμβεί, καλούνται οι λεγόμενοι handlers, δηλαδή callbacks που αντιδρούν στο event (παράδειγμα). Ένα event μπορεί να είναι, για παράδειγμα, η υποβολή μιας φόρμας, η σύνδεση ενός χρήστη κ.λπ. Τα events είναι έτσι μια μορφή Inversion of Control.

Για παράδειγμα, η σύνδεση χρήστη συμβαίνει στη μέθοδο Nette\Security\User::login(). Το αντικείμενο User έχει μια δημόσια μεταβλητή $onLoggedIn, η οποία είναι ένας πίνακας στον οποίο ο καθένας μπορεί να προσθέσει ένα callback. Τη στιγμή που ο χρήστης συνδέεται, η μέθοδος login() καλεί όλα τα callbacks στον πίνακα. Το όνομα της μεταβλητής με τη μορφή onXyz είναι μια σύμβαση που χρησιμοποιείται σε όλο το Nette.

Latte

Ένα από τα πιο προηγμένα συστήματα προτύπων.

Model

Το Model είναι η βάση δεδομένων και κυρίως η λειτουργική βάση ολόκληρης της εφαρμογής. Περιέχει ολόκληρη τη λογική της εφαρμογής (χρησιμοποιείται επίσης ο όρος business logic). Είναι το M από το MVC ή MVP. Οποιαδήποτε ενέργεια του χρήστη (σύνδεση, προσθήκη προϊόντος στο καλάθι, αλλαγή τιμής στη βάση δεδομένων) αντιπροσωπεύει μια ενέργεια του μοντέλου.

Το Model διαχειρίζεται την εσωτερική του κατάσταση και προσφέρει προς τα έξω μια σταθερή διεπαφή. Καλώντας τις συναρτήσεις αυτής της διεπαφής, μπορούμε να μάθουμε ή να αλλάξουμε την κατάστασή του. Το Model δεν γνωρίζει την ύπαρξη του view ή του controller.

Model-View-Controller

Αρχιτεκτονική λογισμικού που προέκυψε από την ανάγκη διαχωρισμού, σε εφαρμογές με γραφική διεπαφή, του κώδικα χειρισμού (controller) από τον κώδικα της λογικής της εφαρμογής (model) και από τον κώδικα εμφάνισης δεδομένων (view). Αυτό αφενός καθιστά την εφαρμογή πιο κατανοητή, διευκολύνει τη μελλοντική ανάπτυξη και επιτρέπει τον έλεγχο των μεμονωμένων τμημάτων ξεχωριστά.

Model-View-Presenter

Αρχιτεκτονική που βασίζεται στο Model-View-Controller.

Module

Ένα module αντιπροσωπεύει ένα λογικό τμήμα της εφαρμογής. Σε μια τυπική διάταξη, πρόκειται για μια ομάδα presenters και προτύπων που χειρίζονται έναν συγκεκριμένο τομέα λειτουργικότητας. Τοποθετούμε τα modules σε ξεχωριστούς καταλόγους, όπως π.χ. Front/, Admin/ ή Shop/.

Για παράδειγμα, ένα e-shop το χωρίζουμε σε:

  • Frontend (Shop/) για την προβολή προϊόντων και την αγορά
  • Ενότητα πελατών (Customer/) για τη διαχείριση παραγγελιών
  • Διαχείριση (Admin/) για τον διαχειριστή

Τεχνικά, πρόκειται για συνηθισμένους καταλόγους, οι οποίοι όμως χάρη στη σαφή διάρθρωση βοηθούν στην κλιμάκωση της εφαρμογής. Ο presenter Admin:Product:List θα βρίσκεται έτσι φυσικά, για παράδειγμα, στον κατάλογο app/Presentation/Admin/Product/List/ (δείτε αντιστοίχιση presenter).

Namespace

Ένα namespace, μέρος της γλώσσας PHP από την έκδοση 5.3 και ορισμένων άλλων γλωσσών προγραμματισμού, που επιτρέπει τη χρήση κλάσεων που ονομάζονται το ίδιο σε διαφορετικές βιβλιοθήκες χωρίς να προκύψει σύγκρουση ονομάτων. Δείτε την Τεκμηρίωση PHP.

Presenter

Ο Presenter είναι ένα αντικείμενο που λαμβάνει το request που μεταφράστηκε από τον router από το HTTP request και δημιουργεί την response. Η απόκριση μπορεί να είναι μια σελίδα HTML, μια εικόνα, ένα έγγραφο XML, ένα αρχείο στον δίσκο, JSON, μια ανακατεύθυνση ή οτιδήποτε άλλο σκεφτείτε.

Συνήθως, ο όρος presenter αναφέρεται σε έναν απόγονο της κλάσης Nette\Application\UI\Presenter. Ανάλογα με τα εισερχόμενα αιτήματα, εκτελεί τις αντίστοιχες actions και αποδίδει πρότυπα.

Router

Αμφίδρομος μεταφραστής μεταξύ HTTP request / URL και ενέργειας presenter. Αμφίδρομο σημαίνει ότι από το HTTP request μπορεί να συναχθεί η ενέργεια presenter, αλλά και αντίστροφα, για μια ενέργεια μπορεί να δημιουργηθεί το αντίστοιχο URL. Περισσότερα στο κεφάλαιο για τη δρομολόγηση URL.

Τα SameSite cookies παρέχουν έναν μηχανισμό για την αναγνώριση του τι οδήγησε στη φόρτωση της σελίδας. Μπορεί να έχει τρεις τιμές: Lax, Strict και None (αυτή απαιτεί HTTPS). Αν το αίτημα για τη σελίδα προέρχεται απευθείας από τον ιστότοπο ή ο χρήστης ανοίγει τη σελίδα πληκτρολογώντας απευθείας στη γραμμή διευθύνσεων ή κάνοντας κλικ σε έναν σελιδοδείκτη, ο περιηγητής στέλνει στον διακομιστή όλα τα cookies (δηλαδή με τις σημαίες Lax, Strict και None). Αν ο χρήστης μεταβεί στον ιστότοπο κάνοντας κλικ σε έναν σύνδεσμο από άλλο ιστότοπο, παραδίδονται στον διακομιστή τα cookies με τις σημαίες Lax και None. Αν το αίτημα προκύψει με άλλο τρόπο, όπως η υποβολή μιας φόρμας POST από άλλο ιστότοπο, η φόρτωση μέσα σε ένα iframe, με χρήση JavaScript, κ.λπ., αποστέλλονται μόνο τα cookies με τη σημαία None.

Service

Στο πλαίσιο του Dependency Injection, ως service ορίζεται ένα αντικείμενο που δημιουργείται και διαχειρίζεται από τον DI container. Μια service μπορεί εύκολα να αντικατασταθεί από μια άλλη υλοποίηση, για παράδειγμα για σκοπούς δοκιμών ή για την αλλαγή της συμπεριφοράς της εφαρμογής, χωρίς να χρειάζεται να τροποποιηθεί ο κώδικας που χρησιμοποιεί τη service.

Snippet

Απόσπασμα, τμήμα της σελίδας που μπορεί να επανασχεδιαστεί ανεξάρτητα κατά τη διάρκεια ενός αιτήματος AJAX.

View

Το View, δηλαδή η όψη, είναι το επίπεδο της εφαρμογής που είναι υπεύθυνο για την εμφάνιση του αποτελέσματος ενός αιτήματος. Συνήθως χρησιμοποιεί ένα σύστημα προτύπων και γνωρίζει πώς να εμφανίσει το κάθε component ή το αποτέλεσμα που λαμβάνεται από το model.

έκδοση: 4.0