Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.