Download Les bases de symfony

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Les bases de symfony
Les commandes à connaître
Vérifier la version de php installée dans la console :
Php –v
Déployer l’ensemble des fichiers de symfony :
composer create-project symfony/website-skeleton LeNom.
Pour installer des packages/plugins :
Composer require symfony/LeNom
Pour configurer une connexion à une base :
# .env <= extension du fichier à éditer!!
# customize this line!
DATABASE_URL="mysql://db_user:[email protected]:3306/db_name"
# to use sqlite:
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db"
Pour vérifier la bonne communication avec la base et créer une BDD :
php bin/console doctrine:database:create
La commande php bin/console make:migration va générer le script SQL dans votre répertoire SRC.
La commande php bin/console doctrine:migrations:migrate pour exécuter le script et créer la table en BDD
Définitions
MVC : C’est un patron de conception logicielle appelé Modèle-Vue-Contrôleur.
Modèle : C’est la couche qui est responsable du traitement de l’information : vérification et validation des données d’un
formulaire, récupération des informations à afficher dans une page, etc... cette couche est en relation étroite avec les
classes métiers de l’application. Il peut arriver que la logique applicative soit rapprochée des classes métiers ; il faut
néanmoins bien distinguer ces notions.
Vue : C’est la couche présentation, ce qui va être donné à voir à l’utilisateur du site Web : les pages et formulaires.
Contrôleur : L’utilisateur interagit avec les pages et formulaires. Cette interaction génère des requêtes http (le contenu
de ces requêtes est lisible notamment dans la super globale $_SERVER en PHP). Ces requêtes sont à leur tour
interceptées par la couche contrôleur, qui demande alors à la couche Modèle de traiter l’information d’une manière
spécifique.
Le routage, comme expliqué précédemment, est utilisé pour orienter la requête de l’utilisateur vers un résultat à afficher dans
une page Web. En fonction du résultat possible, le contenu de la page variera : Message d’erreur personnalisé, listing de
données, affichage d’un formulaire en édition, etc...
Ici c’est un type de données array, et l’on doit donc parcourir le tableau pour en afficher le contenu. La méthode
doMovieResponse()renvoie la liste construite.
Intégrer un template
Il faut tout d’abord créer un contrôleur qui sera capable d’invoquer les mécanismes du template twig: il faut pour cela étendre la
classe AbstractController : class MovieTwigController extends AbstractController
Le mapping relationnel
On parle de mapping relationnel lorsque l’on veut faire correspondre les données d’un ou plusieurs objets (instances de
classes, donc volatilité de l’information) avec une entité dédiée à la persistance : ce peut être une (ou plusieurs) table(s)
dans une base de données relationnelle, ou dans une base de données objet.
Ce qui nous intéresse ici est le mapping relationnel, c’est-à-dire entre une application développée en approche Objet et
un SGBDR.
Nous choisissons pour le moment de laisser à la classe GestionFilm() la gestion des accès en base de données .
Ainsi, de la même manière que nous utilisons un manager de film, nous allons utiliser le manager d’entités fourni par
Doctrine, par un appel de la sorte : $entityManager = $this->getDoctrine()->getManager();
Un CRUD est un système de manipulation des données de la base : ça signifie Create, Read, Update, Delete (Créer,
Lire, Mettre à jour, Supprimer). Autrement dit, on va faire une interface pour gérer nos données. Cela peut entres autres
servir à créer une interface d'administration pour votre site.