01Programme
Le programme, leçon par leçon
Chaque leçon est un commit. Les leçons marquées « gratuit » se regardent sans inscription.
01 Partie 1: Introduction à Symfony
02 Partie 2: Hello Symfony!
- Introduction Gratuit
- Créer un nouveau projet Symfony Gratuit
- Challenge 1: Hello You! Gratuit
- D'où provient la page d'accueil Symfony? [Uniquement pour les guerriers] Gratuit
- De notre contrôleur à notre vue Gratuit
- Challenge 2: Vous venez d'où? Gratuit
- Variables et Filtres Twig Gratuit
- Challenge 3: Passage de données Gratuit
- Un meilleur workflow avec le client Symfony et le bundle Maker Gratuit
- Challenge 4: Pourquoi se compliquer la vie? Gratuit
- Layouts et Assets Gratuit
- Challenge 5: Faites vous plaisir! Gratuit
- Déploiement avec Heroku Gratuit
- Challenge 6: J'ai hâte de voir votre application! Gratuit
03 Partie 3: Projet Eventbrote
- Création du projet Eventbrote Gratuit
- Challenge 7: KackStarter
- De notre contrôleur à notre vue!
- Challenge 8: Une pluie de projets
- Configuration de l'accès à une base de données MySQL
- Configuration de l'accès à une base de données SQLite
- Challenge 9: Où cachez-vous vos données?
- Création d'une entité Event
- Challenge 10: De quelle entité parlez-vous?
- Un grand pouvoir implique de grandes responsabilités
- Challenge 11: À chacun sa responsabilité!
- L'Entity Manager
- Challenge 12: Il est temps de démarrer vos projets!
- Le Service Container
- La Console PsySH
- Challenge 13: Où est ma console?
- Le Client Symfony ne finira jamais de nous épater!
- Actions CRUD Doctrine (Create Read Update Delete)
- Challenge 14: Vous êtes maître de votre console!
- Le M, le V et le C
- Challenge 15: Salut Mister MVC
- Twig Extensions
- Challenge 16: Des extensions à tous les niveaux
- Les migrations
- Challenge 17: Savez-vous migrer?
- Description des migrations
- Challenge 18: Pouvez-vous me décrire?
- Repopuler la base de données
- Challenge 19: Faites entrer les projets
- Affichage des informations restantes
- Challenge 20: Vous nous avez oublié?
04 Partie 4: Anatomie de Symfony
- Bundles, Container, Services, Kezako?
- Injection de dépendances
- Autowiring des arguments d'un contrôleur
- Principe de fonctionnement de l'autowiring
- Comment configurer un Bundle Symfony?
- Gestion des erreurs de configuration
- Et si on s’amusait à configurer le filtre number_format?
- Le Serveur VarDumper
- Parser du Markdown avec Twig MarkdownExtension
- Parser du Markdown avec KnpMarkdownBundle
- Symfony Cache: Introduction
- Symfony Cache: Les contrats Cache
- Faire du caching avec Symfony Cache
- Profiling du système de cache
- Faire du Caching uniquement en Prod
- Les paramètres à la rescousse
- Création d'un service MarkdownTransformer
- L'injection de dépendances
- Injection du service de caching
- Création d'un filtre Twig markdownify
- Une vraie description en Markdown
- Rien de magique!
- Extension Twig - Fonction Pluralize
- Challenge 21: Une description beaucoup plus...
- Quand c'est gratuit, je pense qu'il faudrait le dire!
- Extension Twig - Fonction format_price
- Refactoring avec la méthode isFree
- Challenge 22: Il est temps d'écrire vos propres fonctions!
- La page show
- La méthode createNotFoundException
- Netflix and Chill
- L'annotation @ParamConverter et les attributs de requête
- Challenge 23: Une page pour chaque projet
- Petite astuce à savoir
- L'utilité des noms de routes & La fonction helper path
- La méthode generateUrl
- Configuration d'une route pour la page d'accueil
- Challenge 24: Il est temps de construire vos propres routes :)
- Aide mémoire
05 Partie 5: TDD - Test Driven Development
- Introduction au Test Driven Development
- Installer PHPUnit
- Challenge 25: À chacun son PHPUnit
- Bien démarrer avec PHPUnit
- Challenge 26: Deux autres opérations arithmétiques
- Notre premier test fonctionnel!
- Challenge 27: Vos projets n'attendent plus que vous!
- Tester le cycle MVC au grand complet
- Challenge 28: Une entité Project
- Les transactions, une autre alternative!
- In-Memory Database, une histoire de performance!
- Challenge 29: Tout le monde aime la performance!
- Des messages d'erreurs plus explicites
- Challenge 30: Une meilleure compréhension de vos erreurs!
- Des tests plus élégants
- Challenge 31: La lisibilité, ça compte!
- Dumping du contenu de notre réponse
- Challenge 32: À chacun sa méthode dump
- Assertions sur la présence des autres attributs
- Challenge 33: On fait quoi des autres attributs?
- Le filtre truncate
- Challenge 34: On tronque de partout!
- Test de la page affichant les détails d'un évènement spécifique
- Challenge 35: Une page pour chaque projet
- Navigation entre nos deux pages
- Challenge 36: Les liens c'est fait pour ça
- Création d'une méthode utilitaire createEvent
- Challenge 37: Une méthode utilitaire createProject
- Le TDD dans toute sa splendeur!
- Challenge 38: Une fonction twig format_date
- Ajout de la méthode pluralize
- Challenge 39: 1 projet et non 1 projets
- Test fonctionnel: 404 "Event Not Found"
- Challenge 40: 404 Project Not Found
- Data Providers
- Challenge 41: C'est qui votre provider?
- Les fixtures
- Challenge 42: À chacun sa classe Fixtures
- Une montagne d'erreurs
- Challenge 43: À chacun sa pile d'erreurs
- Plus de randomness avec le bundle Faker
- Challenge 44: Des projets concrets
- Notre première requête customisée
- Challenge 45: Mister QueryBuilder
- Ajout d'un système de pagination des évènements
- Challenge 46: Place à la pagination
- Dites bonjour à la commande assets:install
- Une description en Markdown
- Et si on réglait notre petit problème de troncature avec CakePHP?
- Custom Faker Provider
- Repassons au vert!
- Nouveaux tests fonctionnels pour la page de listing
- Comment tester les repositories Doctrine?
- Refactoring: EventFactory et RefreshDatabase
- Test unitaire de MarkdownExtension (Test doubles: Dummies, Stubs, Mocks)
- Les bonnes pratiques sont avant tout des recommandations
- Configuration d'environnements
- Services publics vs Services privés
- Conteneur spécial
- Browser Testing vs. Endpoint Testing
- Symfony Panther: Une librairie de Browser Testing et de Web Scrapping pour PHP [1/2]
- Symfony Panther: Une librairie de Browser Testing et de Web Scrapping pour PHP [2/2]
- Intégration de Symfony Panther à notre projet
- Refactoring
06 Partie 6: Gestion de formulaires
- Formulaire de contact: Méthode classique
- Refactoring: Formulaire de contact à la Symfony
- Pourquoi s'arrêter en si bon chemin?
- Inférence de types de champs et Bonnes pratiques
- Des labels et des placeholders
- Populer les données d'un formulaire
- Les classes ou types de formulaires
- La méthode handleRequest en profondeur
- Inspection des formulaires avec le Profiler
- Passage d'options customisées à notre type de formulaire
- L'option data_class
- Les fonctions Twig form_*
- Variables de formulaire
- Les petits caprices de l'option required
- Créer une commande Symfony CleanDatabaseCommand
- Envoi de mails avec Symfony
- Comment tester les formulaires avec Symfony?
- Formulaire d'édition d'évènement
- Formulaire de création d'évènement
07 Partie 7: Layouts & Assets
08 Partie 8: Les repositories en profondeur
09 Partie 9: La validation de données
10 Partie 10: Les relations avec Doctrine
11 Partie 11: Intégration continue (CI) & Déploiement continu (CD)
12 Partie 12: Bonus
02 Ils en parlent
Ils en parlent
mieux que moi.
Mes vidéos sont faites pour donner envie de continuer. Mais ne me croyez pas sur parole !
Tous les témoignages
Antonella De Chiara
Étudiant·e Parlons Code
Je vous remercie vraiment pour tout. En peu de temps, j’ai compris plus de choses avec vos vidéos qu’avec n’importe quel livre/cours.
Acrimonia
Étudiant·e Parlons Code
Franchement merci pour vos formations! En plus de très bien expliquer les choses, vous êtes marrant avec toutes vos expressions comme Check-et-bang, Mushibishi :). J'ai bien rigolé. Merci pour tout.
Yahya Gueddouri
Étudiant·e Parlons Code
Vous êtes le meilleur! J'avais failli abandonner la programmation et grâce à un ami qui m'a fait connaitre votre site, je m'en sors maintenant. Merci à vous. Que Dieu vous bénisse.
Covasquis Amegan
Étudiant·e Parlons Code
Vos vidéos valent deux fois un livre!
Riad Zargon Tammar
Étudiant·e Parlons Code
Merci beaucoup pour vos vidéos sur Java. J'ai étudié le langage Java à l'université mais je n'ai rien compris. Avec votre aide, je suis maintenant capable de développer en Java sans trop de difficulté. Grand MERCI.
Armin Arlelt
Étudiant·e Parlons Code
Pour ceux qui se posent encore des questions, je vous garanti qu'en les suivant vous deviendrez des pros. Ils ont une pédagogie qui s'ancre très bien à l'esprit!
Fanny Lebowski
Étudiant·e Parlons Code
Best Teacher Ever!!!! Bravo Honoré! Vos tutos sans exception sont indispensables pour tout étudiant en informatique :)
Nathalie D.
Étudiant·e Parlons Code
J'ai commencé à apprendre à programmer grâce à vos vidéos. Elles sont vraiment top!
Soufiane
Étudiant·e Parlons Code
Je tiens à vous remercier pour vos formations. J'apprends beaucoup plus que ce que j'ai appris à l'université. Prenez soin de vous.