Glossaire des termes
AJAX
Asynchronous JavaScript and XML – technologie de communication client-serveur via le protocole HTTP sans qu'il soit nécessaire de recharger la page entière à chaque demande. Malgré l'acronyme, le format JSON est souvent utilisé à la place de XML.
Action du présentateur
Partie logique du présentateur, qui exécute une action, comme l'affichage d'une page de produit, la déconnexion d'un utilisateur, etc. Un présentateur peut avoir plusieurs actions.
BOM
Le masque d'ordre des octets est un premier caractère spécial d'un fichier et indique l'ordre des octets dans l'encodage. Certains éditeurs l'incluent automatiquement, il est pratiquement invisible, mais il cause des problèmes avec les en-têtes et l'envoi de sortie depuis PHP. Vous pouvez utiliser Code Checker pour le supprimer en masse.
Contrôleur
Le contrôleur traite les demandes de l'utilisateur et sur la base de celles-ci, il appelle une logique d'application particulière (c'est-à-dire le modèle), puis il appelle la vue pour le rendu des données. Les présentateurs de Nette Framework sont des analogues des contrôleurs.
Cross-Site Scripting (XSS)
Le Cross-Site Scripting est une méthode de perturbation des sites utilisant des entrées non codées. Un attaquant peut injecter son propre code HTML ou JavaScript et modifier l'apparence de la page, voire recueillir des informations sensibles sur les utilisateurs. La protection contre le XSS est simple : l'échappement cohérent et correct de toutes les chaînes et entrées.
Nette Framework propose une toute nouvelle technologie d'échappement en fonction du contexte, qui vous permettra de vous débarrasser définitivement des risques liés aux scripts intersites. Il échappe automatiquement toutes les entrées en fonction d'un contexte donné, de sorte qu'il est impossible pour un codeur d'oublier accidentellement quelque chose.
Falsification de requête intersite (CSRF)
Une attaque de type Cross-Site Request Forgery consiste pour l'attaquant à inciter la victime à visiter une page qui exécute silencieusement une requête dans le navigateur de la victime vers le serveur où la victime est actuellement connectée, et le serveur croit que la requête a été faite par la victime à son gré. Le serveur exécute une certaine action sous l'identité de la victime mais sans que celle-ci s'en rende compte. Il peut s'agir de modifier ou de supprimer des données, d'envoyer un message, etc.
Nette Framework protège automatiquement les formulaires et les signaux des présentateurs de ce type d'attaque. Cela se fait en empêchant qu'ils soient envoyés ou appelés depuis un autre domaine.
Injection de dépendances
L'injection de dépendances (DI) est un modèle de conception qui vous indique comment séparer la création d'objets de leurs dépendances. Autrement dit, une classe n'est pas responsable de la création ou de l'initialisation de ses dépendances, mais ces dépendances sont fournies par du code externe (qui peut inclure un conteneur DI). L'avantage est que cela permet une plus grande flexibilité du code, une meilleure lisibilité et des tests d'application plus faciles car les dépendances sont facilement remplaçables et isolées des autres parties du code. Pour plus d'informations, voir Qu'est-ce que l'injection de dépendances ?
Conteneur d'injection de dépendances
Un conteneur d'injection de dépendances (également appelé conteneur DI ou conteneur IoC) est un outil qui gère la création et la gestion des dépendances dans une application (ou des services). Un conteneur possède généralement une configuration qui définit les classes qui dépendent d'autres classes, les implémentations de dépendances spécifiques à utiliser et la manière de créer ces dépendances. Le conteneur crée ensuite ces objets et les fournit aux classes qui en ont besoin. Pour plus d'informations, voir Qu'est-ce qu'un conteneur DI ?
Échapper à
L'échappement est la conversion des caractères ayant une signification particulière dans un contexte donné en une autre
séquence équivalente. Exemple : Nous voulons écrire des guillemets dans une chaîne entre guillemets. Comme les guillemets ont
une signification particulière dans le contexte de la chaîne entre guillemets, il est nécessaire d'utiliser une autre séquence
équivalente. La séquence concrète est déterminée par les règles du contexte (par exemple, \"
dans la chaîne
entre guillemets de PHP, "
dans les attributs HTML, etc.)
Filtre (anciennement Helper)
Fonction de filtrage. Dans les modèles, le filtre est une fonction qui aide à modifier ou à formater les données dans le formulaire de sortie. Les modèles ont plusieurs filtres standard prédéfinis.
Invalidation
Avis d'un snippet à rendre à nouveau. Dans d'autres contextes, il s'agit également de l'effacement d'un cache.
JSON
Format d'échange de données basé sur la syntaxe JavaScript (c'est son sous-ensemble). La spécification exacte se trouve sur www.json.org.
Composant
Partie réutilisable d'une application. Il peut s'agir d'une partie visuelle d'une page, comme décrit dans le chapitre components, ou le terme peut également désigner la classe Component (un tel composant ne doit pas nécessairement être visuel).
Caractères de contrôle
Les caractères de contrôle sont des caractères invisibles, qui peuvent apparaître dans un texte et éventuellement causer des problèmes. Pour les supprimer en masse des fichiers, vous pouvez utiliser Code Checker, pour les supprimer d'une variable, utilisez la fonction Strings::normalize().
Événements
Un événement est une situation attendue dans l'objet qui, lorsqu'elle se produit, appelle ce que l'on appelle les “handlers”, c'est-à-dire les callbacks qui réagissent à l'événement (sample). L'événement peut être, par exemple, la soumission d'un formulaire, la connexion d'un utilisateur, etc. Les événements sont donc une forme d'“inversion de contrôle”.
Par exemple, une connexion utilisateur se produit dans la méthode Nette\Security\User::login()
. L'objet
User
possède une variable publique $onLoggedIn
, qui est un tableau auquel chacun peut ajouter une
fonction de rappel. Dès que l'utilisateur se connecte, la méthode login()
appelle toutes les callbacks du tableau.
Le nom d'une variable sous la forme onXyz
est une convention utilisée dans tout Nette.
Latte
L'un des systèmes de création de modèles les plus innovants qui soient.
Modèle
Le modèle représente les données et les fonctions de base de l'ensemble de l'application. Il comprend toute la logique de l'application (parfois aussi appelée “logique métier”). C'est le M de MVC ou MPV. Toute action de l'utilisateur (connexion, mise au panier, modification d'une valeur de la base de données) représente une action du modèle.
Le modèle gère son état interne et fournit une interface publique. En appelant cette interface, nous pouvons prendre ou changer son état. Le modèle ne connaît pas l'existence de la vue ou du contrôleur, le modèle est totalement indépendant d'eux.
Modèle-Vue-Contrôleur
Architecture logicielle, apparue dans le développement d'applications GUI pour séparer le code de contrôle du flux (contrôleur) du code de la logique applicative (modèle) et du code de rendu des données (vue). De cette façon, le code est plus compréhensible, le développement futur est facilité et il est possible de tester séparément les différentes parties.
Modèle-Vue-Présentateur
Architecture basée sur le Modèle-Vue-Contrôleur.
Module
Le module dans Nette Framework représente une collection de présentateurs et de modèles, éventuellement aussi des composants et des modèles, qui servent des données à un présentateur. Il s'agit donc d'une partie logique certaine d'une application.
Par exemple, une boutique en ligne peut avoir trois modules :
- Catalogue de produits avec panier.
- Administration pour le client.
- Administration pour le commerçant.
Espace de nommage
L'espace de noms est une fonctionnalité du langage PHP depuis sa version 5.3 et de certains autres langages de programmation. Il permet d'éviter les collisions de noms (par exemple, deux classes avec le même nom) lors de l'utilisation conjointe de différentes bibliothèques. Consultez la documentation de PHP pour plus de détails.
Présentateur
Le Presenter est un objet qui prend la requête traduite par le routeur à partir de la requête HTTP et génère une réponse. La réponse peut être une page HTML, une image, un document XML, un fichier, JSON, une redirection ou tout autre élément auquel vous pensez.
Par présentateur, on entend généralement un descendant de la classe Nette\Application\UI\Presenter. Par demande, il exécute les actions appropriées et rend les modèles.
Routeur
Traducteur bidirectionnel entre la demande HTTP / URL et l'action du présentateur. Bi-directionnel signifie qu'il est non seulement possible de dériver une action du présentateur à partir de la demande HTTP, mais aussi de générer l'URL appropriée pour une action. Pour en savoir plus, consultez le chapitre sur le routage des URL.
Cookie SameSite
Les cookies SameSite fournissent un mécanisme permettant de reconnaître ce qui a conduit au chargement de la page. Il peut
avoir trois valeurs : Lax
, Strict
et None
(cette dernière nécessite HTTPS). Si la demande
de la page provient directement du site ou si l'utilisateur ouvre la page en la tapant directement dans la barre d'adresse ou en
cliquant sur un signet, le navigateur envoie tous les cookies au serveur (c'est-à-dire avec les drapeaux Lax
,
Strict
et None
). Si l'utilisateur clique sur le site via un lien provenant d'un autre site, les cookies
avec les drapeaux Lax
et None
sont transmis au serveur. Si la demande est effectuée par d'autres
moyens, comme l'envoi d'un formulaire POST à partir d'un autre site, le chargement à l'intérieur d'une iframe, l'utilisation de
JavaScript, etc., seuls les cookies avec le drapeau None
sont envoyés.
Service
Dans le contexte de l'injection de dépendances, un service fait référence à un objet qui est créé et géré par un conteneur DI. Un service peut facilement être remplacé par une autre implémentation, par exemple à des fins de test ou pour changer le comportement d'une application, sans avoir à modifier le code qui utilise le service.
Extrait
Extrait d'une page, qui peut être rendu séparément lors d'une requête AJAX.
Voir
La vue est une couche de l'application qui est responsable du rendu des résultats de la demande. Habituellement, elle utilise un système de templating et sait comment rendre ses composants ou les résultats pris dans le modèle.