Symfony Flashcards
Histoire de symfony Je t’écoute !
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.
Définiton de framework
Un framework est une infrastructure logicielle que les développeurs utilisent dans les langages de programmation pour créer des structures conviviales.
Définition de composer ?
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.
Définition de Twig?
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.
Définition de Doctrine?
Doctrine est l’ORM par défaut de Symfony.
Qu’est-ce qu’un ORM et donne la signification de son acronyme?
(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.
Définition de DQL ?
Le DQL est un langage simplifié de doctrine pour communiquer avec la base de données. Comme SQL
Définition de MVC et donne ces modèles?
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.
comment ça fonctionne un controleur?
Le contrôleur vérifie le code mais a un code limité, recherchant les informations nécessaires pour renvoyer une réponse.
Comment fonctionne un vue dans le modèle MVC ?
Les vues, ce sont donc les pages qui ont été créées avec Twig et qui vont être dans un dossier templates.
Comment fonctionne un modèle ?
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.
Que contient le dossier BIN ?
Contient certains exécutables comme la console ou phpunit pour lancer les tests. Vous n’intervenez que très peu sur ce dossier.
Que contient le dossier CONFIG?
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.
Que contient le dossier MIGRATIONS ?
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.
A quoi sert le dossier PUBLIC ?
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.
A quoi sert le dossier SRC?
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.
A quoi sert le dossier TEMPLATES?
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.
A quoi sert le dossier TEST ?
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.
A quoi sert le dossier TRANSLATIONS ?
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.
A quoi sert le dossier VAR ?
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.
Que contient le dossier VENDOR?
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.
Le fichier « .env »
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.
Les fichiers « composer.json » et « composer.lock »
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.
Quel type de système est composer le dossier SYMFONY.LOCK ? EXPLIQUE MOI . Enfin Que contient le dossier Le fichier « symfony.lock » ?
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.
Qu’est-ce qu’une route dans SYMFONY ?
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.
Si vous voulez retourner du HTML depuis votre controller, vous voudrez probablement rendre un modèle de page. Comment s’appel t-il ?
On appelle ce modèle de page un template.
Définition de TEMPLATES ?
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.
Pour que votre controller puisse générer des vues en Twig, quel classes faut il appliquer ? Que faut il y ajouter ?
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
Définition routing, ou routage et le MAPING ?
, 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.
Définiton de KERNEL ?
le noyau ou le cœur de notre application
Définition de SCHEMES ?
permet de spécifier si nous voulons qu’une page soit accessible en HTTP ou seulement en HTTPS.
En quoi consiste le terme Path et son paramètre?
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.
Explique moi le terme Paramètre dynamique dans la route
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.
Comment récupérer le paramètre dans le contrôleur ?
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.
A quoi sert la Propriété requirements
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.
En revanche, ce paramètre peut également servir à ajouter des paramètres spéciaux.
_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.
comment créer des routes en YAML?
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.
Imaginez maintenant que pour une quelconque raison, une route de votre application n’existe plus. Que fais tu ?
Symfony propose un contrôleur de redirection afin que les utilisateurs soient redirigés vers la page que vous avez remplacée.
les Outils de débogage sur symfony c’est quoi?
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.
Quel commande (prompt) permet de connaître toutes les routes qui sont dans l’application?
La commande debug:router
Comment vérifier qu’une route fonctionne correctement?
La ligne de commande router:match permet de vérifier si la route matche, c’est-à-dire fonctionne correctement.
Quel extention installer pour aùméliorer la qualité de son code sur symfony ?
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.
Comment créer une classe Controller à la main ?
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.
Symfony Maker c’est quoi ?
Symfony Maker est un pack qui vous aide à créer des contrôleurs, des formulaires, des tests et bien plus encore.