Pinned Repositories
Editeur-3D
Projet de fin d’année SUPINFO ,l’éditeur 3D base sur Irrlicht - End of year assignement, simple 3D editor made with C++ and Irrlicht
Sluck
Application electron projet de fin d' année
SupApi
API pour le projet SupRail
SupRail
Projet de fin d' année de SUPINFO
Games
Symfony_project
Symfony2 - LEARNING WITH PRACTICE ================================= SUPQUOTE : une plateforme où les étudiants de SUPINFO peuvent poster les citations et perles qui passent de temps en temps. // Chaque instruction présente des mots clefs. N'oubliez pas : google est notre ami. // Ne pas oublier d'installer les plugins Symfony2 de PHPStorm : "Settings -> rechercher : plugins -> rechercher : symfony2" SETTING UP OUR APP ------------------ 1.00) Créer un nouveau projet au nom de SUPQuote avec composer ou non. 1.01) Créer un bundle QuoteBundle avec une configuration en annotation : "php app/console generate:bundle" 1.02) Créer deux méthodes dans le DefaultController du AppBundle 1.03) Créer une méthode indexAction() ayant pour route "/" et pour nom "home" 1.04) Créer la vue correspondant à cet action : "AppBundle/Resources/view/Default/index.html.twig" 1.05) Faire de même pour la méthode aboutAction() ayant pour route "/about" 1.06) Insérer le bootstrap et fontawesome dans le template de base : "app/Resources/views/base.html.twig" 1.07) Créer un block {{ block navbar }} dans le <body> de base.html.twig et un block {{ block meta }} dans le <head> pour nos balises <meta> comme la description 1.08) Créer la vue Layout dans "AppBundle/Resources/views/layout.html.twig" et la faire hériter {{ extends "::base.html.twig" }} de "base.html.twig" 1.09) Mettre notre navbar dans le Layout grâce à notre {{ block navbar }} 1.10) Hériter nos vues "home" et "about" de {{ extends "layout.html.twig" }} ENTITY FOR THE WIN ------------------ 2.00) Vérifier votre paramètres de configuration de base données dans "app/config/parameters.yml" 2.01) Ouvrir la console et créer la base : "php app/console doctrine:database:create" 2.02) Dans cette console, générer une entité "Quote" avec la commande : "php app/console doctrine:generate:entity". Configuration en annotation // Ne pas préciser "id" comme attribut -> doctrine le gère automatiquement // S'aider de TAB pour les types d'attribut - content : text - createdAt : datetime - published : boolean 2.03) Créer le controller "QuoteBundle/Controller/QuoteController.php" en s'inspirant du "DefaultController" 2.04) Supprimer le "DefaultController" et son dossier "Default" dans "QuoteBundle/Resources/views/Default" 2.05) Déclarer cinq méthodes dans le "QuoteController" : // Utiliser les ParamsConverters de Symfony2 si vous vous en sentez capable -> se référer à la doc // Penser que chaque action doit return quelquechose : "return array();" // Créer les vues correspondantes - addAction(Request $request) - showAction($id) - editAction(Request $request, $id) - deleteAction($id) - listAction() 2.06) Dans "listAction()" utiliser l'entity manager de doctrine pour récupérer toutes les "Quote $quotes" qui sont à "published == true" et les envoyer à la vue : "return array('quotes' => $quotes); 2.07) Afficher les quotes dans la vue "QuoteBundle/Resources/view/Quote/list.htm.twig" avec un {{ for quote in quotes }} en Twig 2.08) Intégrer la liste des quotes sur la page d'accueil grâce à {{ render(controller('SUPQuoteQuoteBundle:Quote:list')) }} dans la vue "AppBundle/Resources/views/Default/index.html.twig" 2.09) Créer des quotes en base grâce à PHPMyAdmin et tester // Penser à mettre "published = true" 2.10) Afficher la page d'une quote simple avec la méthode "showAction($id)" // Envoyer une NotFoundException (404) si la quote existe, mais n'est pas en "published == true" 2.11) Créer un bouton dans la liste des quotes allant sur la page de la quote grâce à {{ path }} en Twig MANAGE THIS ENTITY ------------------ 3.00) Créer le formulaire de création avec le formbuilder de Symfony2 dans "QuoteBundle/Form/Type/QuoteType.php" -> se référer à la doc 3.01) Appeler le formulaire dans "addAction" de cette façon : "$form = $this->createForm(new QuoteType());" 3.02) Passer le formulaire à la vue et l'afficher avec Twig : {{ form(form, {'method': 'POST'}) }} 3.03) Gérer le formulaire avec "$form->handleRequest($request);" 3.04) Vérifier si le formulaire est valide et insérer la quote en base grâce à doctrine USERBUNDLE FOR DUMMIES ---------------------- 4.00) Installer FOSUserBundle // !! SUIVRE DOC !! // 4.01) Associer les entités "User" et "Quote" avec un "OneToMany" de doctrine -> se référer à la doc 4.02) Modifier la méthode "addAction()" pour associer la quote à l'utilisateur et vice-versa 4.03) Rendre la page de création accessible que par un utilisateur connecté : "ROLE_USER" -> se référer à la doc ADMINS ARE KINGS ---------------- 5.00) Ajouter une méthode "publish($id)" dans le "QuoteController" publiant la quote donnée en la modifiant avec doctrine 5.01) Cette fonctionalité doit être accesible que pour les utilisateurs ayant le "ROLE_ADMIN" 5.02) Développer la méthode d'édition du "QuoteController" 5.03) Rendre la page accessible seulement par un utilisateur au "ROLE_ADMIN" ======================================================================= ======================================== Si vous êtes arrivé jusque ici. Bravo ! Deux points vous seront attribués si vous finissez le projet et que vous me l'envoyez fonctionnel avant le SOE. Votre SCT
test
test
TheSnake
A game for the initiation of the Python language
devguillaume's Repositories
devguillaume/Games
devguillaume/Symfony_project
Symfony2 - LEARNING WITH PRACTICE ================================= SUPQUOTE : une plateforme où les étudiants de SUPINFO peuvent poster les citations et perles qui passent de temps en temps. // Chaque instruction présente des mots clefs. N'oubliez pas : google est notre ami. // Ne pas oublier d'installer les plugins Symfony2 de PHPStorm : "Settings -> rechercher : plugins -> rechercher : symfony2" SETTING UP OUR APP ------------------ 1.00) Créer un nouveau projet au nom de SUPQuote avec composer ou non. 1.01) Créer un bundle QuoteBundle avec une configuration en annotation : "php app/console generate:bundle" 1.02) Créer deux méthodes dans le DefaultController du AppBundle 1.03) Créer une méthode indexAction() ayant pour route "/" et pour nom "home" 1.04) Créer la vue correspondant à cet action : "AppBundle/Resources/view/Default/index.html.twig" 1.05) Faire de même pour la méthode aboutAction() ayant pour route "/about" 1.06) Insérer le bootstrap et fontawesome dans le template de base : "app/Resources/views/base.html.twig" 1.07) Créer un block {{ block navbar }} dans le <body> de base.html.twig et un block {{ block meta }} dans le <head> pour nos balises <meta> comme la description 1.08) Créer la vue Layout dans "AppBundle/Resources/views/layout.html.twig" et la faire hériter {{ extends "::base.html.twig" }} de "base.html.twig" 1.09) Mettre notre navbar dans le Layout grâce à notre {{ block navbar }} 1.10) Hériter nos vues "home" et "about" de {{ extends "layout.html.twig" }} ENTITY FOR THE WIN ------------------ 2.00) Vérifier votre paramètres de configuration de base données dans "app/config/parameters.yml" 2.01) Ouvrir la console et créer la base : "php app/console doctrine:database:create" 2.02) Dans cette console, générer une entité "Quote" avec la commande : "php app/console doctrine:generate:entity". Configuration en annotation // Ne pas préciser "id" comme attribut -> doctrine le gère automatiquement // S'aider de TAB pour les types d'attribut - content : text - createdAt : datetime - published : boolean 2.03) Créer le controller "QuoteBundle/Controller/QuoteController.php" en s'inspirant du "DefaultController" 2.04) Supprimer le "DefaultController" et son dossier "Default" dans "QuoteBundle/Resources/views/Default" 2.05) Déclarer cinq méthodes dans le "QuoteController" : // Utiliser les ParamsConverters de Symfony2 si vous vous en sentez capable -> se référer à la doc // Penser que chaque action doit return quelquechose : "return array();" // Créer les vues correspondantes - addAction(Request $request) - showAction($id) - editAction(Request $request, $id) - deleteAction($id) - listAction() 2.06) Dans "listAction()" utiliser l'entity manager de doctrine pour récupérer toutes les "Quote $quotes" qui sont à "published == true" et les envoyer à la vue : "return array('quotes' => $quotes); 2.07) Afficher les quotes dans la vue "QuoteBundle/Resources/view/Quote/list.htm.twig" avec un {{ for quote in quotes }} en Twig 2.08) Intégrer la liste des quotes sur la page d'accueil grâce à {{ render(controller('SUPQuoteQuoteBundle:Quote:list')) }} dans la vue "AppBundle/Resources/views/Default/index.html.twig" 2.09) Créer des quotes en base grâce à PHPMyAdmin et tester // Penser à mettre "published = true" 2.10) Afficher la page d'une quote simple avec la méthode "showAction($id)" // Envoyer une NotFoundException (404) si la quote existe, mais n'est pas en "published == true" 2.11) Créer un bouton dans la liste des quotes allant sur la page de la quote grâce à {{ path }} en Twig MANAGE THIS ENTITY ------------------ 3.00) Créer le formulaire de création avec le formbuilder de Symfony2 dans "QuoteBundle/Form/Type/QuoteType.php" -> se référer à la doc 3.01) Appeler le formulaire dans "addAction" de cette façon : "$form = $this->createForm(new QuoteType());" 3.02) Passer le formulaire à la vue et l'afficher avec Twig : {{ form(form, {'method': 'POST'}) }} 3.03) Gérer le formulaire avec "$form->handleRequest($request);" 3.04) Vérifier si le formulaire est valide et insérer la quote en base grâce à doctrine USERBUNDLE FOR DUMMIES ---------------------- 4.00) Installer FOSUserBundle // !! SUIVRE DOC !! // 4.01) Associer les entités "User" et "Quote" avec un "OneToMany" de doctrine -> se référer à la doc 4.02) Modifier la méthode "addAction()" pour associer la quote à l'utilisateur et vice-versa 4.03) Rendre la page de création accessible que par un utilisateur connecté : "ROLE_USER" -> se référer à la doc ADMINS ARE KINGS ---------------- 5.00) Ajouter une méthode "publish($id)" dans le "QuoteController" publiant la quote donnée en la modifiant avec doctrine 5.01) Cette fonctionalité doit être accesible que pour les utilisateurs ayant le "ROLE_ADMIN" 5.02) Développer la méthode d'édition du "QuoteController" 5.03) Rendre la page accessible seulement par un utilisateur au "ROLE_ADMIN" ======================================================================= ======================================== Si vous êtes arrivé jusque ici. Bravo ! Deux points vous seront attribués si vous finissez le projet et que vous me l'envoyez fonctionnel avant le SOE. Votre SCT
devguillaume/test
test