Détails du sujet

Synfony 3 [Quiz 1] [Pile 2]

Généralités, Architecture, Bundles, Kernel dans le FrameWork Symfony 3

Toutes les cartes

L'Outil profiler est-il accessible depuis l'environnement de production?

Non


Quel outil nous permet d'avoir les détails de nos erreurs dans l'environnement de développement?

L'outil profiler accessible avec une URL qui se termine par /web/app_dev.php/_profiler


Comment connaître les erreurs en mode production puisqu'elles ne s'affichent pas?

On doit consulter le fichier

\var\logs\prod.log


Quel est le rôle du contrôleur frontal?

  • C'est le point d'entrée de notre application
  • Il appel le Kernel (noyau) pour lui donner la requête reçue afin que le Kernel la transforme en réponse

Dans quel répertoire se trouve le Kernel de Symfony?

\vendor


Le Kernel est-il un composant de Symfony?

Oui


Le Kernel gère-t-il les erreurs et la toolbar située en bas de la fenêtre de navigation?

Oui


Quel design pattern de 3 lettres Symfony respecte-t-il?

MVC

(Modèle Vue Contrôleur)


Quel est le rôle du Contrôleur de Symfony?

  • Il génère la réponse à la requète HTTP demandée par le client

Notez qu'il utilise le Modèle et la Vue pour générer la réponse


Quel est le rôle du Modèle de Symfony?

  • il gére les données et le contenu
  • il va chercher les données necessaires (dans une bdd, un fichier ou autre)
  • il est la couche d'abstraction du contrôleur

Quel est le rôle de la Vue dans Symfony?

  • Elle sert à afficher les pages

Est-ce le contrôleur qui affiche le formulaire?

Non, il ne fait qu'appeler la bonne vue.


Séparer les Contrôleurs des Vues permet-il aux désigners et aux développeurs de collaborer sans empiéter sur le travail des autres?

Oui


Dans le design pattern MVC quel est celui qui joue le rôle de "Chef d'Orchestre"?

Le Contrôleur


Lister les étapes du parcours d'une requête dans Symfony.

  • Le client demande une page web sous forme d'une requête
  • Le contrôleur frontal donne la requête au kernel
  • Le kernel demande au routeur le contrôleur qui correspond à la requête
  • Le kernel lance le contrôleur
  • Le contrôleur demande au modèle les données nécessaires et les récupère
  • Le contrôleur donne à la vue les données
  • La vue génére la page et la donne au contrôleur
  • Le contrôleur donne au Kernel un objet Response qui contient la page HTML (ou une redirection) à envoyer au client

Dans la liste ci-dessous que devrons-nous développer?

  • Le Contrôleur
  • Le Modèle
  • La Vue
  • Le kernel
  • Le Routeur
  • Le Contrôleur
  • Le Modèle
  • La Vue

Dans la liste ci-dessous que devrons-nous configurer?

  • Le Contrôleur
  • Le Modèle
  • La Vue
  • Le kernel
  • Le Routeur
  • Le kernel
  • Le Routeur

Qu'est-ce qu'un Bundle?

C'est une brique logicielle de notre application.

Il concerne une fonctionnalité (Blog, Utilisateur, Boutique).

Il regroupe dans un même endroit les Modèles, Vues, Contrôleurs, Classes Personnelles, Routes, CSS, JS.

C'est une structure arborescente composée de répertoires nommés de manière standard.

 


Peut-on échanger les bundles entre différentes applications?

Oui


Dans quel cas devons nous créer des bundles?

Si l'on souhaite les réutiliser dans d'autres applications ou les partager.


Quel site internet regroupe les Bundles de la communauté Symfony?

http://knpbundles.com


Quel sont les avantages d'utiliser les Bundles?

  • Ne pas avoir à développer un bundle s'il existe déjà sur knpbundles.com
  • Bien organiser les différentes parties de son application

Quelle est l'arborescence recommandée pour un Bundle?

  • \Controller (contient nos contrôleurs)
  • \DependencyInjection
  • \Entity (contient nos modèles)
  • \Form (contient nos formulaires)
  • \Resources\config (contient les fichiers de configuration)
  • \Resources\public (contient les fichiers CSS JS images)
  • \Resources\views (contient les vues et les templates twig)
  • \Tests

Quelle ligne de commande nous permet de connaître toutes les commandes PHP disponibles de Symfony?

>php bin/console


Quelle ligne de commande nous permet de générer un Bundle?

>php bin/console generate:bundle


Dans l'environnement de développement

Quelle balise HTML doit-on utiliser dans une page web afin d'afficher la barre de débogage (ToolBar) en bas du navigateur?

La balise fermante:

 

</body>


Que se passe-t-il quand on génére un Bundle avec le générateur en ligne de commande?

  • Symfony génére la structure du Bundle
  • Symfony enregistre notre Bundle dans le Kernel
  • Symfony enregistre nos routes dans le Routeur

Dans quel répertoire un Bundle sera placé aprés sa génération en ligne de commande?

\src


Quelles sont les étapes à respecter pour créer un bundle manuellement?

  • Mettre son Bundle dans \src\Nom_Entreprise\NomBundle
  • Créer à la racine le fichier classe obligatoire: Nom_EntrepriseNom_Bundle.php qui contient la classe du même nom qui étend la classe Bundle de Symfony
  • Enregristrer son Bundle dans le Kernel de l'application
  • Enregistrer ses routes dans le Routeur au niveau de l'application et du Bundle

Quel fichier modifier pour enregistrer son Bundle dans le Kernel?

\app\AppKernel.php


Quels fichiers modifier pour enregistrer les routes de notre Bundle dans le Routeur?

Dans l'application:

\app\config\routing.yml

 

Dans le Bundle:

\Resources\config\routing.yml

 


Dans app

Quel fichier de routing est chargé par Symfony en mode Développeur et en mode Production?

  • En mode Production: \app\config\routing.yml
  • En mode Développeur: \app\config\routing_dev.yml

Notez que le fichier routing_dev.yml charge le fichier routing.yml

 


Quel est l'avantage de pouvoir lancer des commandes Symfony en ligne de commande?

  • Gain de temps
  • Génére le code de base rapidement

Chaque Bundle dispose-t-il de ses propres routes?

Oui


Dans un Bundle le rôle du contrôleur est-il de renvoyer au Kernel (noyau) un objet Response qui contient la page HTML (ou une redirection) à envoyer au client?

Oui


Quels sont les étapes de création d'une page dans un Bundle?

  • Créer sa route
  • Créer son contrôleur
  • Créer son template Twig (vue)

Quel est le rôle du Routeur?

Retourne la route (avec ses paramètres) qui correspond à l'URL du client


Une route contient-elle obligatoirement comme paramètre le nom du contrôleur à exécuter?

Oui


Vrai ou Faux

On ne modifie jamais le Kernel et le Routeur

Vrai


Une indentation dans un fichier YAML est constituée de combien d'espaces?

4 espaces et pas une tabulation


Est-il conseillé d'écrire le contenu de ses fichiers YAML plutôt que de copier-coller le contenu à partir d'un fichier externe?

Oui, afin d'éviter les erreurs d'indentation.


Commentez chacune des lignes
  • Ligne 1: Commentaire qui indique le chemin du fichier
  • Ligne 3: Nom de la route (doit être unique)
  • Ligne 4: URL qui correspondra à notre page index
  • Ligne 5: Nom du contrôleur (Advert) + Nom de la méthode (index) du contrôleur  + Nom du Bundle (OCPlatformBundle)

Un contrôleur peut-il contenir plusieurs actions (méthodes) et donc plusieurs pages?

Oui


Les routes d'un bundle doivent-elles toujours être définies dans le Bundle est pas ailleur?

Oui


Le contrôleur contient-il la logique de notre application?

Oui

C'est lui par exemple qui vérifie si l'utilisateur est connecté et peut ou non accéder à une page.


Qu'est-ce que Twig?

Twig est un moteur de templates utilisé par défaut par le framework Symfony.


Dans un Bundle

Quel est le répertoire qui contient les templates (vues)?

\Resources\views


Dans un Bundle

Comment est-il recommandé de nommer le répertoire qui contiendra le template (vue)?

Du même nom que le Contrôleur.


Dans un Bundle

Comment est-il recommandé de nommer le template (vue)?

Du même nom que l'action du Contrôleur.


Quel est l'extention d'un template Twig qui contiendra du code HTML?

.html.twig