Nouveau Prix réduit ! Symfony 4 : les fondamentaux par la pratique Agrandir l'image

Symfony 4 : les fondamentaux par la pratique

learn.web-develop/symfony4

PrestaShop 1.7 intègre petit à petit les éléments de Symfony, il est donc nécessaire aux développeurs ne connaissant pas ce framework de se former.

Voici donc une formation indispensable pour débuter en Symfony pour un tarif abordable.

Fiche technique

Url du servicehttps://link.prestatoolbox.fr/learnwebdevelopsymfony4

90,00 € HT

-55%

199,99 €

Exclusivité Prestatoolbox

Secure payment methods

Proposé par

Lior Chamla

En savoir plus

Créer un site d'annonce avec interface d'administration pour apprendre tous les fondamentaux du Framework PHP Symfony 4

On n'apprend jamais mieux que par la pratique. Cette formation destinée à tous les développeurs qui veulent en savoir plus sur le Framework Symfony 4 vous permettra de créer étape après étape un véritable site d'annonces sur lequel les utilisateurs pourront :
  • S'inscrire, s'authentifier et gérer leur compte
  • Créer des annonces afin de mettre en location leur bien
  • Réserver une location 
  • Commenter et noter l'annonce après que la location ait eu lieu
De  plus, le site fournira aux administrateurs une véritable interface de gestion sécurisée. On passera donc par l'ensemble des étapes classiques de la création d'une application web.

Les notions sont distillées tout au long des vidéos et ne sont abordées que lorsqu'on en a vraiment besoin et qu'on peut donc les mettre immédiatement en pratique.

Alors embarquez avec moi pour ces 20 heures de vidéo et devenez un véritable développeur Symfony 4, vous aurez alors des bases solides pour continuer par vous même votre apprentissage de toutes les subtilités du Framework !

Ce que vous allez apprendre

  • Développer une application Symfony complexe
  • Maîtriser le concept de Controllers et de Routes paramétrées ou pas
  • Maîtriser le langage de templating Twig et ses subtilités
  • Utiliser le composant Form pour créer des formulaires riches et des sous-formulaires
  • Utiliser des DataTransformers pour formater des données vers et depuis un formulaire
  • Mettre en place des validations de formulaire
  • Comprendre Doctrine et la liaison avec la base de données
  • Construire une base de données pas à pas grâce aux entités et au système de migrations
  • Créer des requêtes complexes grâce au DQL (Doctrine Query Language)
  • Créer des jeux de fausses données grâce aux Fixtures
  • Utiliser le composant Security pour sécuriser les pages, gérer les rôles et l'authentification des utilisateurs
  • Personnaliser les pages d'erreurs les plus communes
  • Comprendre la notion et l'utilité des Services
  • Construire un système de pagination de A à Z
  • Déployer une application Symfony sur différents types de serveurs (mutualisé ou container)

Programme de la formation

  • Introduction
    • Qu'est-ce que Symfony 4 et pourquoi l'utiliser ?
    • Ce qu'on va faire ensemble, ce que ça va vous apporter
    • Les outils nécessaires pour suivre la formation
    • Mettre en place l'environnement de travail
    • Mettre en place VSCode pour travailler !
    • Tirez profit au maximum de cette formation !
  • Premiers pas : mise en place de notre application Symfony 4
    • Créons notre projet Symfony 4 avec Composer !
    • Découverte de la structure d'une application Symfony 4
    • Introduction : le concept de Controller au sein d'une application Symfony 4
    • Créons notre premier Controller : le HomeController
    • Séparer les traitements et l'affichage grâce à Twig
    • Les avantages du langage de templating Twig
    • Comprendre Twig : L'interpolation (afficher une variable)
    • Comprendre Twig : les structures de contrôle (conditions et boucles)
    • Comprendre Twig : les commentaires
    • Comprendre Twig : les filtres
    • Routes paramétrées & routes multiples : des adresses dynamique porteuses de sens
    • Comprendre Twig : générer une URL avec la fonction path()
    • Comprendre Twig : l'héritage de gabarit (extends)
    • Mise en place d'un thème Bootstrap
    • Mise en place de la barre de navigation
    • Mise en place finale de la page d'accueil de notre application
    • Versionning de notre avancement avec GIT
    • Quiz : Démarrage avec Symfony 4
  • Relations avec la base de données
    • Introduction : la relation aux bases de données avec Symfony et Doctrine
    • Création de la base de données grâce à la CLI
    • Comprendre Doctrine : créons notre première Entité pour représenter les annonces
    • Comprendre Doctrine : notre premier script de migrations
    • Comprendre Doctrine : créer des jeux de fausses données avec les Fixtures
    • Rendre nos fausses données plus réalistes avec Faker
    • Créer des slugs facilement avec Slugify
    • Comprendre Doctrine : interagir avec le cycle de vie des Entités
    • Comprendre Doctrine : les relations entre Entités avec l'Entité Image
    • Enrichir la Fixture pour créer des images
  • Notre premier Controller : le AdController pour la gestion des annonces
    • Affichage de la liste des annonces
    • Récupération des annonces grâce au Repository Doctrine
    • Comprendre l'Injection de Dépendances
    • Récupération d'une annonce avec son slug grâce au Repository
    • Affichage d'une annonce
    • Un peu de CSS personnalisé
    • Parcourir les images liées à une annonce grâce à la relation entre les 2 entités
    • Mise à jour de la barre de navigation
    • Liens paramétrés dans la liste des annonces
    • Comprendre Twig : utiliser une variable Twig pour factoriser un code
    • Comprendre le ParamConverter de Symfony 4
  • Symfony et les formulaires
    • A l'attention des étudiants qui utilisent AdBlock et autres extensions
    • Créer la page de création d'une annonce
    • Découverte du FormBuilder : le fabricant de formulaire
    • Comprendre Twig : afficher un formulaire Symfony
    • Créer une classe de Formulaire externe et réutilisable
    • Comprendre Twig : les fonctions d'affichage de formulaire
    • Comprendre Twig : mise en forme du formulaire
    • Comprendre Twig : les thèmes de formulaires
    • Comprendre Twig : le thème de formulaire Bootstrap 4
    • Configurer les champs de formulaire
    • Récupérer et sauvegarder les données du formulaire
    • Effectuer une redirection vers la page de la nouvelle annonce
    • Utiliser les messages Flash pour notifier le visiteur
    • Comprendre Twig : les inclusions de template
    • Aller plus loin avec les formulaires
    • Créer des sous-formulaire avec les CollectionType
    • Comprendre Twig : personnaliser l'affichage des sous-formulaires
  • Ajouter un élément dynamiquement grâce au prototype du CollectionType
    • Supprimer un élément dynamiquement grâce au CollectionType
    • Faire persister les éléments liés avec le CollectionType
    • Correction d'un bug sur les index des sous-formulaires
    • Rendre le champ "slug" non obligatoire (option required)
    • La validation de formulaire avec Symfony
    • Valider l'unicité d'une entité et éviter les doublons !
    • Créer un formulaire d'édition pour nos annonces
    • Valider les sous-formulaires du CollectionType
    • Correction d'un bug lors de la suppression d'éléments du CollectionType
    • Refactorisation du code entre les formulaire de création et d'édition
    • Versionning de notre avancement avec GIT
  • Les utilisateurs et l'authentification dans Symfony
    • Création d'une entité User pour stocker nos utilisateurs
    • La relation OneToMany entre les annonces (Ad) et les utilisateurs (User)
    • Mise à jour de la Fixture pour créer de faux utilisateurs
    • Des avatars aléatoires pour nos faux utilisateurs avec RandomUser.me
    • L'encodage des mots de passe de nos utilisateurs
    • Découverte de l'interface UserInterface
    • Authentification : déclare un nouveau provider (entité User)
    • Authentification : créer le formulaire de connexion
    • Authentification : authentifier réellement l'utilisateur
    • Authentification : permettre à l'utilisateur de se déconnecter
    • Authentification : repérer les erreurs avec la classe AuthenticationUtils
    • Créer le formulaire d'inscription : le RegistrationType
    • Refactorisation du code entre les classes AdType et RegistrationType
    • Enregistrer les données du formulaire d'inscription
    • Valider le formulaire d'inscription
    • Créer une confirmation de mot de passe durant l'inscription
    • Mise à jour de la barre de navigation
    • Créer un formulaire d'édition du profil utilisateur
    • Créer un formulaire de modification du mot de passe
    • Sauvegarder le nouveau mot de passe
    • Créer une erreur personnalisée sur le formulaire de modification de mot de passe
  • Intégration des utilisateurs dans le reste du site
    • Afficher l'auteur dans la page d'une annonce
    • Créer une page de profil pour les utilisateurs
    • Faire les liens vers la page de profil d'un utilisateur
    • Créer la page "Mon compte"
    • Ajouter des liens de gestion du compte utilisateur
    • Mise en place d'une dropdown dans la barre de navigation
    • Prendre en compte l'utilisateur connecté lorsqu'on créé une annonce
    • Versionning de notre avancement avec GIT
  • La sécurité et les autorisations dans Symfony 4
    • Mise en place des rôles d'utilisateurs
    • Modification de la Fixture pour créer un rôle ADMIN et un administrateur
    • Récupération des rôles dans l'entité User
    • Sécuriser le AdController avec les annotation @IsGranted() et @Security()
    • Sécuriser le AccountController avec les annotations @IsGranted() et @Security()
    • Afficher des liens et bouton en fonction du statut de l'utilisateur
    • Permettre aux utilisateurs de supprimer leurs annonces
    • Versionning de notre avancement avec GIT
    • Conclusion et ouvertures
  • Gérer les pages d'erreurs dans Symfony 4
    • Comprendre la gestion des pages d'erreurs dans une application Symfony 4
    • Créer une page d'erreur 404 personnalisée et la tester
    • Créer une page d'erreur 403 personnalisée et la tester
    • Faire attention au cache en environnement de production
  • Gestion des réservations
    • Création d'une entité Booking et migration de la base de données
    • Modification de la Fixture pour ajouter de fausses réservations
    • Création du formulaire de réservation
    • Modifier l'apparence du champ DateType avec l'option "widget"
    • Ajout d'un champ de commentaire sur les réservations
    • Création du lien de réservation à partir d'une annonce
    • Sécuriser la page de réservation avec l'annotation @IsGranted()
    • Enregistrer une réservation en calculant automatiquement le montant
    • Affichage d'une réservation existante
    • Utiliser un paramètre GET pour modifier l'affichage d'une réservation
    • Validation du formulaire de réservation (partie 1)
    • Prendre en compte la disponibilité d'une annonce lors de la réservation
    • Utiliser un calendrier Javascript pour empêcher le choix de dates indisponibles
    • Utiliser un DataTransformer pour gérer les dates au format français
    • Validation des dates du formulaire (partie 2)
    • Calculer le nombre de nuits et le montant de la réservation en Javascript
    • Création d'une page de liste des réservations
    • Versionning de notre avancement avec GIT
  • Gestion des commentaires et notations
    • Création d'une entité Comment pour stocker les avis des visiteurs
    • Modification de la Fixture pour ajouter de faux commentaires
    • Affichage des commentaires sur la page d'une annonce
    • Installation de FontAwesome pour bénéficier d'icônes !
    • Afficher les notes sous forme d'étoiles
    • Factorisation du template d'affichage des notes sous forme d'icônes
    • Calculer et afficher la note moyenne d'une annonce
    • Affichage des moyennes sur l'ensemble des annonces
    • Personnaliser le CSS afin d'avoir des étoiles dorées pour les notes
    • Affichage du formulaire de commentaire sur une réservation
    • Enregistrer les données du formulaire de commentaire
    • S'assurer qu'un visiteur ne commente qu'une seule fois une annonce
    • Affichage des notes sur la liste des réservations
  • [Optionnel] Refonte visuelle et uniformisation
    • Partie 1 : modifications CSS pour des changements globaux
    • Partie 2 : Uniformisation des espacements et du format des prix
    • Partie 3 : Refonte du formulaire de création d'une annonce
    • Partie 4 : Refonte du formulaire d'édition du profil
    • Partie 5 : Refonte du formulaire d'inscription
    • Partie 6 : Refonte du formulaire de modification du mot de passe
    • Partie 7 : Mise en place du Responsive avec la balise méta viewport !
  • Créer une interface d'administration pour notre application
    • Création du controller d'Administration des Annonces : le AdminAdController
    • Mise en place d'un habillage différent au sein de l'administration
    • Mise à jour de la barre de navigation
    • Sécurité : Protéger l'accès à toute l'administration grâce aux ACL
    • Créer une page de connexion spécifique pour l'administration
    • Création d'un Firewall particulier pour l'administration
    • Créer le formulaire de connexion à l'administration
    • Permettre à l'administrateur de se déconnecter
    • Création du formulaire d'édition des annonces
    • Mettre en place un thème de CollectionType à nouveau
    • Permettre à l'administrateur de supprimer une annonce
    • Exercice : affichez la liste des commentaires !
    • Solution : affichez la liste des commentaires !
    • Exercice : créez le formulaire d'édition d'un commentaire
    • Solution : créez le formulaire d'édition d'un commentaire
    • Exercice : permettez à l'administrateur de supprimer un commentaire
    • Solution : permettez à l'administrateur de supprimer un commentaire
    • Exercice : affichez la liste des réservations
    • Solution : affichez la liste des réservations
    • Découverte du type de champ EntityType pour l'édition d'une réservation
    • Le problème de la validation par l'entité Booking dans 2 formulaires différents
    • Découverte de la notion de Groupes de Validation (ValidationGroups)
    • Recalculer le montant d'une réservation lors de la modification de l'annonce
    • Permettre à l'administrateur de supprimer une réservation
    • Versionning de notre avancement avec GIT
  • Découverte du concept de Service : mise en pratique avec la Pagination
    • Introduction aux méthodes des Repositories pour récupérer les données
    • Mise en place HTML et utilisation du findBy() pour paginer !
    • Placer des contraintes sur les paramètres des routes grâce aux Requirements
    • Rendre dynamique la pagination HTML
    • Découverte de la notion de Service pour la pagination
    • Création du service de pagination
    • Factorisation du Twig concernant la pagination
    • Intégrer l'affichage de la pagination dans le service de pagination
    • Rendre configurable le service de pagination grâce au fichier "services.yaml"
    • Aider les futurs développeurs avec les exceptions
    • Conclusion : la notion de services et ses avantages
    • Versionning de notre avancement avec GIT
  • Découverte du DQL et création du Dashboard : Les requêtes avec Doctrine
    • Mise en place statique du Dashboard dans l'administration
    • Nos premières requêtes DQL
    • Les fonctions d'agrégation et le tri
    • Extraire la récupération des données du Controller grâce à la notion de Service
    • Découverte du QueryBuilder pour remplir la homepage du site
  • Découverte de Webpack Encore : prendre soin de ses fichiers CSS et JS !
    • Installation de Webpack Encore dans notre projet
    • Mise en place de la bonne structure des fichiers
    • Fusionner des fichiers CSS en un seul fichier optimisé
    • Le versionning des fichiers CSS et JS afin de contourner les problèmes de cache
    • Utiliser SASS dans nos fichiers CSS grâce à Webpack Encore
    • Traiter nos fichiers Javascript avec Webpack Encore
    • Installation du package Bootstrap avec NPM
    • Pouvoir utiliser jQuery partout : le problème des modules Webpack
    • Créer plusieurs fichiers Javascript pour optimiser les chargements
    • Mise à jour de l'interface d'administration
    • Conclusion : non nécessaire mais tellement avantageux !
    • Versionning de notre avancement avec GIT
  • Déploiement de l'application en production
    • Création d'un dépôt Git sur la plateforme GitHub et premier "push" de code
    • Découverte du fichier .gitignore et des fichiers ignorés
    • Hébergement Mutualisé : introduction
    • Générer le fichier .htaccess avec le pack symfony/apache-pack
    • Hébergement Mutualisé : mise en ligne avec accès SSH
    • Hébergement Mutualisé : mise en ligne sans SSH
    • Hébergement Mutualisé : faire des mises à jour sans SSH
    • Hébergement Mutualisé : faire des mises à jour avec SSH
    • Heroku : mise en place de l'application et lien avec GitHub
    • Heroku : mise en place de la base de données et mises à jour
  • SECTION BONUS : Vidéos à venir sur différents sujets
    • ⚡ AJAX & SYMFONY : INITIATION
    • ???? SYMFONY/TWIG : CRÉER SES PROPRES FILTRES !
    • ???? SYMFONY : L'AUTOWIRING ET LE CONTAINER DE SERVICES

Avis Clients