🎙 Formations
💌 Newsletter
👨💻 Qui suis-je ?
Se connecter
🎙 Formations
💌 Newsletter
👨💻 Qui suis-je ?
Se connecter
Symfony 4 : les fondamentaux par la pratique
Acheter maintenant
En savoir plus
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 !
A l'attention des étudiants qui utilisent AdBlock et autres extensions
Tirez profit au maximum de cette formation !
Premiers pas : mise en place de notre application Symfony 4
Avant de commencer : sortie de Symfony 5
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
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
ALERTE SYMFONY 5
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
Programmes
Cours
Section
Cours
Exercice : créez le formulaire d'édition d'un commentaire
Exercice : créez le formulaire d'édition d'un commentaire
Symfony 4 : les fondamentaux par la pratique
Acheter maintenant
En savoir plus
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 !
A l'attention des étudiants qui utilisent AdBlock et autres extensions
Tirez profit au maximum de cette formation !
Premiers pas : mise en place de notre application Symfony 4
Avant de commencer : sortie de Symfony 5
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
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
ALERTE SYMFONY 5
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
C'est désormais à vous de vous exercer ! Permettez à l'administrateur de modifier un commentaire ! Bon courage, et ne vous inquiétez pas, la solution vient juste après.