Symfony Flashcards

1
Q

Histoire de symfony Je t’écoute !

A

SensioLabs, a commencé en 2005 à développer Symfony, une langage moderne et inspirée par Java. Il a été utilisé pour traiter des projets web et a été distribué sous licence MIT. PHP 7 a augmenté sa vitesse de exécution et offre un gain de vitesse de 45 % selon les applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Définiton de framework

A

Un framework est une infrastructure logicielle que les développeurs utilisent dans les langages de programmation pour créer des structures conviviales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Définition de composer ?

A

Est un gestionnaire de dépendances libres écrit en PHP et il est donc au cœur de la stratégie de Symfony. Il vous faudra donc installer Composer avant même de commencer votre projet, c’est un prérequis, tout comme PHP doit être installé avant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Définition de Twig?

A

Twig est un moteur de modèles qui sépare l’interface graphique du code, offrant une syntaxe simple pour la visualisation des données.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Définition de Doctrine?

A

Doctrine est l’ORM par défaut de Symfony.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce qu’un ORM et donne la signification de son acronyme?

A

(Object-Relational Mapping) !Un ORM est un ensemble de classes permettant de manipuler les tables d’une base de données relationnelle, telle que MySQL ou PostgreSQL, comme s’il s’agissait d’objets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Définition de DQL ?

A

Le DQL est un langage simplifié de doctrine pour communiquer avec la base de données. Comme SQL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Définition de MVC et donne ces modèles?

A

MVC (Modèle Vue Contrôleur). MVC est une architecture qui sert à découper l’application en modules avec trois grandes responsabilités.

Les modèles gèrent l’accès aux données.

Les vues sont les interfaces graphiques, ce que verra l’utilisateur.

Les contrôleurs ont pour objectif de retourner une réponse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

comment ça fonctionne un controleur?

A

Le contrôleur vérifie le code mais a un code limité, recherchant les informations nécessaires pour renvoyer une réponse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Comment fonctionne un vue dans le modèle MVC ?

A

Les vues, ce sont donc les pages qui ont été créées avec Twig et qui vont être dans un dossier templates.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment fonctionne un modèle ?

A

Le modèle c’est la couche de données qui permettra d’y accéder via des repositories ou de modifier leurs structures via des entités. Dans notre exemple, le contrôleur ira justement l’interroger pour vérifier la conformité de notre formulaire.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que contient le dossier BIN ?

A

Contient certains exécutables comme la console ou phpunit pour lancer les tests. Vous n’intervenez que très peu sur ce dossier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que contient le dossier CONFIG?

A

Contient tous les fichiers de configuration de l’application. Cela peut être la configuration de Symfony lui-même ou bien celle des packages installés par Composer. Vous serez amené à beaucoup travailler dans ce dossier pour donner des indications sur le fonctionnement de votre application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Que contient le dossier MIGRATIONS ?

A

Ce dossier contient l’historique, étape par étape, de la construction de la base de données. À chaque nouvelle modification de la structure de la base de données un fichier reflétant l’opération réalisée sera généré, permettant ainsi de suivre la construction de la base de données et pour pouvoir la recréer automatiquement.

Les outils de Symfony CLI liés à la base de données se servent de ce dossier pour travailler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

A quoi sert le dossier PUBLIC ?

A

Ce dossier contient le premier fichier qui sera lu lors du lancement de l’application. Il contient également tout ce que le visiteur du site sera autorisé à voir : fichiers HTML, CSS, js, les images, etc. Le visiteur du site n’a pas accès à ce qui se trouve en dehors de ce dossier. Il est donc fondamental de ne rien mettre dans ce dossier qui serait confidentiel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A quoi sert le dossier SRC?

A

C’est le dossier principal de votre application. Tout le code de votre application se trouvera dans ce dossier. Vous y passerez donc la plupart de votre temps.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

A quoi sert le dossier TEMPLATES?

A

Ce dossier contient toutes les vues de l’application, c’est-à-dire vos fichiers HTML, mais avec quelques particularités. Les fichiers templates utilisent le moteur de rendu TWIG pour travailler avec Symfony.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

A quoi sert le dossier TEST ?

A

Contient tous les fichiers permettant d’effectuer des tests unitaires, d’intégration ou d’application. La structure de ce dossier doit obligatoirement reprendre la structure du dossier « /src » de votre application. PHPUnit cherchera par défaut les fichiers de test dans ce dossier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

A quoi sert le dossier TRANSLATIONS ?

A

Si votre application gère le multilingue, ce dossier contiendra les fichiers de traductions. Chaque fichier pouvant correspondre à un domaine particulier et à une langue donnée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

A quoi sert le dossier VAR ?

A

Accessible en écriture par le serveur, ce dossier contient les fichiers temporaires, les fichiers de travail, le cache, etc. Vous n’avez généralement pas besoin d’aller dans ce dossier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Que contient le dossier VENDOR?

A

Contient tous les dossiers système nécessaires au fonctionnement interne de Symfony. Ce dossier contient également les dossiers des packages installés par Composer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Le fichier « .env »

A

Ce fichier permet de stocker toutes les informations sensibles dont votre application a besoin et que vous ne souhaitez pas exposer à tout le monde. Il peut contenir des mots de passe, des clés d’API, des informations de connexion à une base de données, etc. Ce fichier ne sera pas versionné et ainsi pas exposé dans votre dépôt Git.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Les fichiers « composer.json » et « composer.lock »

A

Le fichier composer.json contient la liste des dépendances de premier niveau (celles dont votre projet a effectivement besoin) avec comme précision une plage de versions acceptables (ni trop ancienne, ni trop récente par exemple).

Le fichier composer.lock, lui, contient la liste de l’ensemble de toutes les dépendances réellement installées avec la version précise installées ainsi que toutes les sous-dépendances, c’est-à-dire les dépendances des dépendances.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Quel type de système est composer le dossier SYMFONY.LOCK ? EXPLIQUE MOI . Enfin Que contient le dossier Le fichier « symfony.lock » ?

A

Symfony possède un système de recettes appelé Flex. un outil qui rend l’ajout de nouvelles fonctionnalités très simple. Grâce à une seule ligne de commande, vous pouvez utiliser une des recettes proposées par Symfony pour ajouter une fonctionnalité.

Le fichier symfony.lock est le fichier qui tient le registre des dépendances installées via des recettes, ce qui est plus simple à suivre que de le deviner à partir du fichier composer.lock.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Qu’est-ce qu’une route dans SYMFONY ?

A

Une route est une adresse internet propre à notre site. Cette route est un point d’accès qui peut retourner une page ou des données, par exemple. Pour naviguer dans notre site, nous avons besoin de définir un ensemble de routes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Si vous voulez retourner du HTML depuis votre controller, vous voudrez probablement rendre un modèle de page. Comment s’appel t-il ?

A

On appelle ce modèle de page un template.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Définition de TEMPLATES ?

A

Un système de template permet de générer des pages HTML classiques tout en injectant des variables provenant de Symfony. Nous générons alors des Vues. Ce sont les Views de la terminologie MVC. Ce mécanisme permet une approche très puissante de modèles de pages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Pour que votre controller puisse générer des vues en Twig, quel classes faut il appliquer ? Que faut il y ajouter ?

A

AbstractController et RENDER !
* Cette classe contient une collection de méthodes qui donneront à nos Controller plus de fonctionnalités notamment sur la gestion des requêtes et des réponses.
*render qui permet de générer un rendu HTML depuis les templates Twig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Définition routing, ou routage et le MAPING ?

A

, permet de définir comment les URL d’une application doivent être mappées. Quant au mapping des URL, il s’agit du processus consistant à associer une URL à une action spécifique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Définiton de KERNEL ?

A

le noyau ou le cœur de notre application

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Définition de SCHEMES ?

A

permet de spécifier si nous voulons qu’une page soit accessible en HTTP ou seulement en HTTPS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

En quoi consiste le terme Path et son paramètre?

A

Le paramètre « path » dans le routage désigne une partie variable d’une URL qui peut être utilisée pour fournir des informations supplémentaires.Son paramètre de chemin est défini dans une portion variable entourée de crochets. Il peut être dynamique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Explique moi le terme Paramètre dynamique dans la route

A

Par exemple, dans une liste d’utilisateur, le paramètre dynamique de path va permettre de récupérer un utilisateur précis.
Il faut pour ajouter un paramètre dynamique ajouter à la route des accolades avec entre elles, le nom de la propriété que l’on utilise pour identifier de façon unique un élément de la liste.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Comment récupérer le paramètre dans le contrôleur ?

A

attributes-get() de request mais le best c’est Doctrine (son ORM), est très efficace. Vous pouvez simplement préciser la propriété dans les paramètres de la fonction et il sera capable de comprendre seul ce qu’il doit chercher, grâce au typage du paramètre. C’est ce que l’on appelle un ParamConverter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

A quoi sert la Propriété requirements

A

Ce paramètre peut servir de validation de paramètres de route.
Il permet de pouvoir s’assurer que le paramètre de path correspond au bon format.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

En revanche, ce paramètre peut également servir à ajouter des paramètres spéciaux.

A

_controller est utilisé pour déterminer quel contrôleur et quelle action sont exécutés lorsque la route est appariée,

_format est utilisé pour définir le format de la requête de l’objet Request,

_fragment est utilisé pour définir l’identifiant de fragment qui est la dernière partie facultative d’une URL qui commence par #

,_locale est utilisé pour définir les paramètres régionaux de la demande.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

comment créer des routes en YAML?

A

Dans le fichier routes.yaml, qui se trouve dans le dossier config à la racine du projet,

  • indiquez le nom de la méthode du contrôleur que vous souhaitez associer à la route.
  • avec une indentation dans path:, indiquez le chemin de la route avec ses éventuels paramètres
  • dans controller: indiquez le chemin d’accès jusqu’au contrôleur.

Si vous souhaitez ajouter d’autres paramètres de routes, vous pouvez les ajouter une à une en respectant bien l’indentation (utilisez des espaces et non des tabulations).
En effet, la syntaxe YAML y est très sensible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Imaginez maintenant que pour une quelconque raison, une route de votre application n’existe plus. Que fais tu ?

A

Symfony propose un contrôleur de redirection afin que les utilisateurs soient redirigés vers la page que vous avez remplacée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

les Outils de débogage sur symfony c’est quoi?

A

Les outils de débogage pour Symfony sont des fonctionnalités intégrées dans le framework qui permettent aux développeurs de diagnostiquer et de résoudre les erreurs et les problèmes dans leur application Symfony.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Quel commande (prompt) permet de connaître toutes les routes qui sont dans l’application?

A

La commande debug:router

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Comment vérifier qu’une route fonctionne correctement?

A

La ligne de commande router:match permet de vérifier si la route matche, c’est-à-dire fonctionne correctement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Quel extention installer pour aùméliorer la qualité de son code sur symfony ?

A

Codacy, SymfonyInsight ou encore CodeClimate pour auditer la qualité de votre code. En effet, ils permettent de détecter une fonction surchargée de votre contrôleur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Comment créer une classe Controller à la main ?

A

1 Dossier ‘src’ > dossier controller
2. creer une classe controller / fichier avec le mm nom
3. controller doit avoir la route / système et renvoie la réponse typer après les paramètres de la méthode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Symfony Maker c’est quoi ?

A

Symfony Maker est un pack qui vous aide à créer des contrôleurs, des formulaires, des tests et bien plus encore.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Qu’est-ce que la vue dans MVC ?

A

La vue dans une application web c’est tout ce qui est visible à l’écran.

46
Q

Composer c’est quoi ?

A

Composer est un outil de gestion de dépendances qui permet aux développeurs de gérer les librairies et les dépendances de leur projet de manière simple et efficace.

47
Q

Qu’est-ce qu’un moteur de templates ?

A

Le rôle d’un moteur de templates est principalement de vous aider dans la lisibilité et la logique d’une application. Ce que fait précisément un moteur de templates, c’est de rassembler le code pour l’affichage (HTML, CSS et Javascript voir Sass) avec le code PHP de l’application.

48
Q

Avantages, inconvénient de Twig

A

Avantages
Clarté : syntaxe facile,Documentation : claire, fournie et bien expliquée ainsi que régulièrement mise à jour,Rapide : performances sont optimisées,Sécurité : les variables sont sécurisées automatiquement par un filtre, Flexibilité :Twig est alimenté par un lexer et un parser
Inconviénient:
Dépendance : Twig nécessite l’installation de Composer et de certaines dépendances, de façon générale un moteur de templates fait retarder le chargement des pages, un petit apprentissage et donc du temps.Twig, de par sa simplicité, n’a pas autant de flexibilité (DOM virtuel, asynchrone, fragmentation/états des éléments) qu’un langage front à part entière type React, Vue, etc.

49
Q

Définition d’un Lexer?

A

c’est un analyseur syntaxique ou programme qui se charge d’analyser et d’extraire ou isolé des éléments d’une grammaire

50
Q

comment optimiser mon code grâce twig sur vs code et pour le tester ?

A

Visual Studio Code avec « twig pack »

Vous pouvez aussi effectuer des tests en ligne grâce au Playground twigfiddle sur TWIGFiddle.

51
Q

COMPOSER inconvénients ?

A

Composer require une connexion internet pour télécharger les dépendances, . Il ne peut être utilisé pour gérer dépendances non basés sur PHP, et les dépendances doivent être mise à jour manuellement. Les dépendances doivent être mise à jour sans précipitation.

52
Q

Packagist c’est quoi ?

A

une banque de répertoires Github qui centralise tous les composants PHP pour des frameworks comme Symfony ou Laravel.

53
Q

APT c’est quoi ?

A

APT est un gestionnaire de paquets pour les systèmes basés sur Debian comme Ubuntu, qui permet de gérer les logiciels installés, de les mettre à jour et de les désinstaller, ainsi que de gérer les dépendances.

54
Q

En quoi Il est crucial de prendre en compte les require des dépendances avant installation ?

A

pour éviter les problèmes de compatibilité et les erreurs. Composer n’est pas le seul outil de gestion des dépendances dans le monde du codage, mais il en existe d’autres comme Bundler et NPM.

55
Q

Definition de require ?

A

Les requires d’un projet Symfony sont les dépendances externes nécessaires à votre projet. sont dans le fichier composer.json de votre projet.

56
Q

Qu’est-ce qu’un bundle ? Pourquoi il ne faut pas utiliser les bundle pour organiser une app web ?

A

le but d’un bundle est de partager le code d’une fonctionnalité entre plusieurs pages ou même applications.

Cela permet de garder un code propre ainsi qu’une arborescence claire et qui constitue en une bonne pratique du codage.

57
Q

Définition règles PSR ?

A

Les normes PSR ressemblent à ce que sont les règles grammaticales (ponctuation, syntaxe, etc.) en littérature mais pour le développement web.

58
Q

De quoi est composer un BUNDLE ?

A

Les Bundles de PHP s’étendent les fonctionnalités de Symfony et ajoutent de nouvelles fonctionnalités à l’application. Ils définissent les fichiers de configuration, les modèles Twig et les ressources pour les fonctionnalités du bundle. Ces fichiers peuvent être inclus dans l’application via des statiques ou des appels de ressources. Les commandes de la console peuvent automatiser des tâches telles que la création d’entités, la mise à jour de la base de données et la génération de code.

59
Q

SYMFONY FLEX AVANTAGES? FONCTION ?

A

Symfony Flex simplifie l’installation des packages, la configuration et la gestion des dépendances dans les projets Symfony en utilisant des “ressources” pour automatiser les tâches. Ces recettes sont des scripts qui ajoutent des fichiers de configuration, des services, des routes, et modifient les fichiers existants pour assurer une intégration correcte. Elles peuvent être personnalisées pour répondre aux besoins spécifiques d’un projet, ce qui permet de gagner du temps et de garantir des versions stables et cohérentes des paquets.

60
Q

La gestion de versions Explique moi tout de A à Z MA BELLE ?

A

La gestion des versions est une pratique essentielle dans le développement de logiciels, permettant de suivre les modifications apportées à un code source au fil du temps. Lors de la gestion des dépendances d’un projet, il est important d’appliquer de bonnes pratiques pour éviter les conflits et les erreurs. Les fichiers de verrouillage, tels que composer.lock et symfony.lock, enregistrent les versions exactes des paquets installés et de leurs dépendances. Assurez-vous que ces fichiers sont toujours à jour et inclus dans le système de gestion des versions.

En cas de conflits entre les branches sur les fichiers de verrouillage, résolvez les conflits manuellement, en comparant les différences entre les deux fichiers de verrouillage et en fusionnant les modifications. Si les conflits sont nombreux ou complexes, il peut être nécessaire de supprimer les fichiers de verrouillage et de monter les versions des paquets dans composer.json ou équivalent. En s’assurant que les fichiers de verrouillage sont conservés, que les fichiers fournisseurs ne sont pas versionnés et que les conflits sont résolus, les développeurs peuvent éviter les erreurs et garantir la stabilité du projet.

61
Q

Définiton entités ?

A

Une entité Symfony est une table de base de données, dont les attributs sont gérés dans la base de données. Doctrine simplifie les requêtes SQL en utilisant des méthodes PHP.

62
Q

MakerBundle C’est quoi ?

A

MakerBundle est un composant exclusivement développé pour aider à la création de Contrôleurs, de formulaires ou d’entités.

63
Q

Comment créer une entité ?

A
  1. créer manuellement un fichier PHP dans le dossier Entity
  2. développer l’entité avec ses méthodes et ses attributs
  3. faire une migration vers la base de données.
    Mais, grâce à Maker-bundle que nous avons installé, Doctrine peut nous aider à créer facilement une Entité.
64
Q

Notion de propriété et d’inverse :

A

il y a toujours une entité dite propriétaire et une dite inverse. L’entité propriétaire est celle qui contient la référence à l’autre entité. Illustrons cela :

65
Q

Notion d’unidirectionnalité et de bidirectionnalité

A

les relations uniques, il existera dans notre exemple de relation entre tâche et user, une méthode dans notre entité tâche getUser() qui ira simplement chercher l’utilisateur associé via sa clé étrangère.

une relation bidirectionnelle, il faut expliciter la relation aussi dans l’entité inverse pour que Doctrine, dans cet exemple, aille chercher de lui-même toutes les tâches d’un utilisateur. Il exécutera implicitement une requête pour cela lorsque vous appellerez depuis un User getTasks().

66
Q

Définition attributs t le termes annotations ?

A

Attribute est une fonctionnalité permettant de définir des métadonnées dans le code, qui sont lues par l’API Reflection de PHP. C’est la même chose que l’annotation, mais de manière native, et ne nécessite pas d’analyseur tiers pour extraire les métadonnées de PHP.

67
Q

Donne moi Les types de relations :
est a quoi ellle consiste?

A

OneToOne, One to One, Many To One et Many To Many sont des relations classiques qui définissent des dépendances uniques entre deux entités.
OneToOne permet aux utilisateurs d’associer des images à leur entité User, tandis que Many To Many permet à plusieurs entités d’établir des relations entre elles.
Ces relations sont créées par la doctrine afin de conserver des clés étrangères pour chaque relation.

68
Q

Resume le concept d’entités .

A

Les Entités peuvent être reliées entre elles grâce à ce qu’on appelle des relations, nous avons décrit les différents types de relation utilisés à avoir OneToOne, OneToMany, ManyToOne et ManyToMany, ce qui permet de créer des bases de données relationnelles très simple ou très complexe. Alors, n’oubliez jamais de créer vos diagrammes UML avant de commencer à développer vos entités. Votre diagramme de classes peut véritablement vous aider à ne pas vous tromper dans le positionnement de vos relations.

69
Q

quel sont les 3 étapes d’une construction d’un formulaire en PHP ?

A

les 3 étapes d’un formulaire :

Construire un formulaire dans un contrôleur ou en utilisant une classe de formulaire dans le dossier Form

Rendre le formulaire dans un modèle, c’est-à-dire faire en sorte que le contrôleur appelle une page Twig avec les champs du formulaire

Traiter le formulaire, ce qui implique une validation est une transformation des données, le plus souvent en objet pour pouvoir être transféré dans une base de données

70
Q

Quels type de fonction pouvons nous utiliser

A

BuildForm() utilise un constructeur de formulaires $builder, un objet FormBuilderInterface, avec un outil indispensable : add(), qui a pour ajouter tous les champs.

configureOptions() permet de créer un système d’options avec les options requises, les valeurs par défaut, la validation, la normalisation et plus encore.

71
Q

Avec quel fonction peut -on creer un formulaire direct dans le controleur ?

A

il est possible de créer un formulaire directement dans le contrôleur grâce à la méthode que fournit AbstractController : createFormBuilder().

72
Q

Explique moi le principe SOLID

A

Single Responsibility Principle (SRP)
Le principe de responsabilité unique (SRP) stipule qu’une classe ne devrait avoir qu’une seule responsabilité bien définie.
Open/Closed Principle (OCP)
lorsque de nouvelles fonctionnalités doivent être ajoutées, il est préférable d’étendre le code existant plutôt que de le modifier directement.Liskov Substitution Principle (LSP)
respecter les contrats lors de l’héritage des classes. Plus spécifiquement, si une classe B est une sous-classe d’une classe A, alors elle doit pouvoir être utilisée en remplacement de A sans affecter la cohérence du système.
Interface Segregation Principle (ISP)
les clients ne devraient pas être forcés d’implémenter des méthodes qu’ils n’utilisent pas.
Dependency Inversion Principle (DIP)
les modules de haut niveau ne devraient pas dépendre directement des modules de bas niveau, mais plutôt d’abstractions communes.

73
Q

Quel fonction permet le traitement du formulaire ?

A

c’est la méthode handlesubmit() du contrôleur qui permet le traitement du formulaire.

74
Q

Ou se trouve la variable APP_ENV et a quoi elle sert

A

APP_ENV se trouve dans le fichier .env et c’est elle qui va définir si on est en mode Développement, Test ou Production en mettant cette variable égale à dev, test ou prod.

75
Q

Le Profiler C’est quoi ?

A

La barre d’outils fournit des informations précieuses en un seul clic. En survolant la barre d’outils, les utilisateurs peuvent accéder à plus d’informations, mais il s’agit d’un moyen visuel et rapide d’accéder aux informations les plus importantes. La barre d’outils Profiler est conçue pour aider les utilisateurs à comprendre et à résoudre les problèmes. Pour accéder à une page de débogage, cliquez sur le bouton 404 ou sur tout autre bouton.

76
Q

Que faire si lors de l’installation de PROFILER il y a cette ERREUR ?
> “GET http://127.0.0.1:8000/”?

A

Le profiler n’a pas trouvé de route pour GET http://127.0.0.1.8000/, ce qui est normal. Symfony Profiler ne crée pas encore de route pour aucune URL. Les logs ou la console affichent des messages similaires.

77
Q

Événements Définition ?

A

un signal émis par une partie de votre application pour indiquer qu’une action a eu lieu.

78
Q

Listeners Définition ?

A

Un listener est une méthode qui écoute un événement spécifique et qui est exécuté lorsque cet événement est déclenché (clic).

79
Q

Event Dispatcher Définition ?

A

l’objet central qui gère la communication entre les événements et les listeners. Il reçoit les événements déclenchés dans votre application et les transmet aux listeners appropriés. L’Event Dispatcher est responsable de la gestion des listeners et de leur enregistrement auprès des événements.

80
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * ce déclenché lorsque la requête HTTP est reçue par l’application.

A

kernel.request

81
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché avant que le contrôleur ne soit exécuté pour traiter la requête.

A

kernel.controller

82
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché après que le noyau a déterminé le contrôleur à utiliser pour traiter la requête, mais avant que celui-ci ne soit appelé.

A

kernel.controller_arguments

83
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché lorsque le contrôleur a terminé de traiter la requête et a retourné une réponse, mais avant que cette réponse ne soit envoyée au client.

A

kernel.view

84
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché après que la réponse a été envoyée au client.

A

kernel.response

85
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché après que toutes les étapes de traitement de la requête ont été effectuées, y compris l’envoi de la réponse au client.

A

kernel.finish_request

86
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché après que la réponse a été envoyée au client et que toutes les connexions ont été fermées.

A

kernel.terminate

87
Q

Parmi les Events du cycle de vie du Kernel cette commande permet de: * Ce déclenché lorsqu’une exception se produit pendant le traitement de la requête.

A

kernel.exception

88
Q

Qu’est qui peut améliorer la lisibilité d’un code et sa logique. Il peut aussi rassembler le code pour l’affiche avec du php l’application .

A

Moteur de template

89
Q

Avantage de Twig

A
  1. twig à besoin d’une Dépendance
  2. Fait retarder le chargemetn de pages
    3.la sécurité des variables son direct protéger
    4.fléxibilité twig est alimenté par un lexer et un parser pour définir et personnalité ses propres balises; filtre et creer son propre DSL
  3. Intégration Ide visual studios code automatic
90
Q

Incovénient de twig

A
  1. twig à besoin de dependances comme composer et autre pour marcher
    2.Il faut retarder le chargement des pages
    3.syntaxe simple mais necessite du temps d’apprentissage
    4.simple mais peu de fléxibilité par rapport à d’autre langage comme REACT, VUE
91
Q

Qu’est-ce qui est déclarer à l’extérieur d’une fonction?

A

variable globales

92
Q

a quoi sert un filtre ?

A

il modifie les variables séparer par le symbole “pipe”.

93
Q

donne moi 3 type de filtre différents

A

filtre raw= desac echaapement caractere
filtre lenght: renvoie la longueur
filtre apply:transforme tout en majuscule.

94
Q

Quel Objet est representé sous forme de classe pour être transformer en table dans une BDD relationnelle de type MYSQL, PostgreSQL, SQLite?

A

Entité

95
Q

Qu’elle est la classe dont la responsibilités est de faire des requêtes vers la BDD?

A

Repository Avec Doctrine

96
Q

Que veux dire CRUD

A

CREATE READ Update delete

97
Q

Que veux dire MVC?

A

Modele Vue Controleur

98
Q

donne moi des exemple de repository pour manipuler des entités

A

index(), new(), edit(),delete().

99
Q

A quoi sert Symfony Validator?

A

Pour éviter les utilisateur malveillant fasse des injection. Validator vérifie que les réponses données sont conforme à celles attendues et puissent être afficher et stockée en sécurité

100
Q

Au lieu de rajouter des contraintes à nos formulaire comment peut-on faire?

A

Les mettres dans un dossier YAML, XML dans le dossier config

101
Q

A quoi sert les contraintes de validation de form?

A

vérifier la conformité des données dans le cadre d’un formulaire;
5afficher un message d’erreur : Assert/email(message:’email invalide’)

102
Q

comment créer automatiquement ou manuellement une entités (épendance qui sert à installer divers elements sur des projets symfony)

A

automatiquement avec Validator symfony et manuellement avec la fonction buildfor(), add()

103
Q

comment valider le contrôleur dans un formulaire

A

on l’afffecte direct dans le builder dur formtype

104
Q

L’event dispatcher composant clé

A

gère la communication entre les évènements et listeners responsable de la gestion des listeners et enregistrements

104
Q

La validation avec twig

A

twig ne valide pas les forms mais il offre des filtres fonctions et extentions qu’on peut addà partir de template.

105
Q

Event?

A

objet qui contient infos sur un evenement spécifique

106
Q

Explique moi le cycle de vie des events du Kernel

A

les listeners associés peuvent agir en réponse a des évènement

107
Q

le concept de priorité des events

A

les listeners se déclenches par ordre de priorité dans un même objets. Pour les arranger tu peux aller dans ocntainer .

108
Q

La différence entre listeners et subscriber?

A

listeners = 1 events
subscribers = plusieurs events a

109
Q

argument Subscriber pour le config sont les …

A

Tag = identifie et enregistre automatiquement dans l’objet event dispatcher

110
Q

Quel tag permet de définir une class qui implémente l’interface

A

EventSubscriberInterface