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
- Bienvenue Gratuit
- Introduction Gratuit
- Les pré-requis Gratuit
- Avant de commencer
- Qu'est-ce que Symfony? Gratuit
- Composer
- Les composants VarDumper et YAML
- Créer un nouveau projet Symfony Gratuit
- Challenge 1: KackStarter
- Principe de fonctionnement du Web - Architecture MVC
- De notre contrôleur à notre vue! Gratuit
- Challenge 2: Une pluie de projets!
- Et si on relaxait un tout petit peu?
- Configuration de notre projet
- Configuration de l'accès à une base de données MySQL
- Configuration de l'accès à une base de données SQLite
- Challenge 3: Où cachez-vous vos données?
- Création d'une entité Event
- Challenge 4: De quelle entité parlez-vous?
- Un grand pouvoir implique de grandes responsabilités
- Challenge 5: À chacun sa responsabilité!
- Entity Manager
- Challenge 6: Il est temps de démarrer vos projets!
- Le Service Container
- La console PsySH
- Challenge 7: Il est temps de démarrer vos projets!
- Actions CRUD
- Challenge 8: Vous êtes maître de votre console!
- Notions de front-controller
- Le M, le V et le C
- Challenge 9: Salut Mr MVC!
- Twig Extensions
- Challenge 10: Des extensions à tous les niveaux!
- Les migrations
- Challenge 11: Savez-vous migrer?
- Repopuler la base de données
- Challenge 12: Faites entrer les projets!
- Le filtre date
- Challenge 13: Puis-je avoir l'heure SVP?
02 Partie 2: Anatomie de Symfony
- Bundles, Container, Services, Kezako?
- Services Logger & Templating
- Comment configurer un Bundle Symfony?
- Gestion des erreurs de configuration
- Et si on s’amusait à configurer le filtre number_format?
- Un peu de Markdown, ça vous tente?
- Parser du Markdown avec le service markdown.parser
- DoctrineCacheBundle
- Utilisation du service de cache
- Service Aliases
- Faire du Caching uniquement en Prod
- DRY - Les paramètres à la rescousse
- Tout chemin mène à Rome
- Notre service MarkdownTransformer
- L'injection de dépendances
- Notion de Type Hinting
- Les interfaces, c'est bon pour la santé!
- Enregistrer un service
- Rien de magique!
- Injection du service de Caching
- Interface Cache
- Adieu Mr Alias!
- Créer une extension Twig
- Enregistrer une extension Twig comme un service
- Service Oriented Architecture (SOA) en miniature
- Félicitations !
- Une vraie description en Markdown
- Extension Twig - Fonction Pluralize
- Challenge 14: Une description beaucoup plus...
- La magie de Mr Autowire
- Quand c'est gratuit, je pense qu'il faudrait le dire!
- Extension Twig - Fonction format_price
- Refactoring avec la méthode isFree
- Challenge 15: Il est temps d'écrire vos propres fonctions!
- La page show
- La méthode createNotFoundException
- L'annotation @ParamConverter
- Challenge 16: Une page pour chaque projet
- Astuce avec les attributs de requête
- Nom de route & La fonction helper path
- La méthode generateUrl
- Configuration d'une route pour la page d'accueil en YAML
- Challenge 17: Il est temps de construire vos propres routes :)
03 Partie 3: Mise à niveau d'un projet Symfony 3.2 à 3.3
- Migrer vers Symfony 3.3
- Compatibilité ascendante et Sémantique de versioning
- Les messages de dépréciation sont vos meilleurs amis!
- Changements mineurs au niveau de Symfony 3.3
- Réduire le nombre de messages de dépréciation
- Warmup du Cache
- _defaults, autowire & autoconfigure
- Nouvelle bonne pratique pour les identifiants de services
- Soyons tous curieux!
- Rendons par défaut tous nos services privés!
- Auto-enregistrer tous les services
- Le code source est la meilleure documentation
- Les contrôleurs enregistrés comme des services
- AbstractController & Autowiring des arguments d'un contrôleur
- Création d'un service NameGenerator
- Problématiques avec les services multi-classes
- Configurer un argument spécifique d'un service
04 Partie 4: TDD - Test Driven Development
- Installer PHPUnit
- Challenge 18: À chacun son PHPUnit
- Bien démarrer avec PHPUnit
- Challenge 19: Deux autres opérations arithmétiques
- Notre premier test fonctionnel!
- Challenge 20: Vos projets n'attendent plus que vous!
- Tester le cycle MVC au grand complet
- Challenge 21: Une entité Project
- Les transactions, une autre alternative!
- In-Memory Database, une histoire de performance!
- Challenge 22: Tout le monde aime la performance!
- Des messages d'erreurs plus explicites
- Challenge 23: Une meilleure compréhension de vos erreurs!
- Des tests plus élégants
- Challenge 24: La lisibilité, ça compte!
- Assertions sur la présence des autres attributs
- Challenge 25: On fait quoi des autres attributs?
- Le filtre truncate
- Challenge 26: On tronque de partout!
- Un peu de refactoring
- Dumping du contenu de notre réponse
- Challenge 27: À chacun sa méthode dump
- Test de la page affichant les détails d'un évènement spécifique
- Challenge 28: Une page pour chaque projet
- Navigation entre nos deux pages
- Challenge 29: Les liens c'est fait pour ça
- Création d'une méthode utilitaire createEvent
- Challenge 30: Une méthode utilitaire createProject
- Petit refactoring
- Le TDD dans toute sa splendeur!
- Quand il s'agit d'un test unitaire, il faudrait le spécifier!
- Challenge 31: Une fonction twig format_date
- Challenge 32: Un test unitaire pour la méthode formatPrice
- Solution: Test unitaire pour la méthode formatPrice
- Les fixtures
- Challenge 33: À chacun sa classe Fixtures
- Des fixtures expressifs avec Alice
- Challenge 34: Alice au pays des merveilles
- Custom Faker Data Provider
- Challenge 35: Des projets concrets
- La classe Faker\Provider\Base
- Challenge 36: Évitez de réinventer la roue
05 Partie 5: Découverte de Symfony 4
06 Partie 6: Mise à niveau d'un projet Symfony 3.3 à 4
- Migrer vers Symfony 3.4
- Services et Autowiring
- Migrer vers Symfony 4
- Installer Flex
- Le fichier composer.json de Symfony Flex
- Quelques petits tweaks
- Migration de la configuration - Partie 1/5
- Migration de la configuration - Partie 2/5
- Migration de la configuration - Partie 3/5
- Migration de la configuration - Partie 4/5
- Migration de la configuration - Partie 5/5
- Démarrage du serveur
- Dites aurevoir à AppBundle
- Passons au vert
- Des fixtures qui fonctionnent
- Variables d'environnement avancées
- Bonus
- SymfonyMakerBundle, VCS Repository, Minimum Stability
07 Partie 7: Nouveau Workflow de développement avec Symfony 4
08 Partie 8: Projet Eventbrote avec Symfony 4
- Création du projet Eventbrote
- Vues et contrôleurs
- Modèles
- Connecter le contrôleur au modèle et à la vue
- Les migrations
- Extensions Twig
- Layouts
- Assets: Feuilles de style et Images
- La page show
- Navigation entre les pages
- Formulaire d'édition d'événement
- Formulaire de création d'événement
- Form Types et Partials
- Suppression d'événement
- Requêtes customisées
- Retour sur les migrations
- Validation des données
- Messages Flash
- Relation One to Many (Un à Plusieurs): ManyToOne [1/5]
- Relation One to Many (Un à Plusieurs): OneToMany [2/5]
- Relation One to Many (Un à Plusieurs): Ressources imbriquées [3/5]
- Relation One to Many (Un à Plusieurs): Formulaires [4/5]
- Relation One to Many (Un à Plusieurs): Logique [5/5]
- Déploiement avec SymfonyCloud
09 Aller plus loin
10 Bonus: Atelier "Découverte du composant Symfony Messenger"
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.