Licence CC BY-NC-SA

Développez votre site web avec le framework Symfony2

Développez votre site web avec le framework Symfony2

Ce tutoriel a été initialement publié sur le Site du Zéro par winzou sous licence CC-BY-NC-SA.

Vous savez déjà faire des sites internet ? Vous maîtrisez votre code, mais n'êtes pas totalement satisfait ? Vous avez trop souvent l'impression de réinventer la roue ?

Alors ce tutoriel est fait pour vous !

Symfony2 est un puissant framework qui va vous permettre de réaliser des sites complexes rapidement, mais de façon structurée et avec un code clair et maintenable. En un mot : le paradis du développeur !

Ce tutoriel est un tutoriel pour débutants sur Symfony2, vous n'avez besoin d'aucune notion sur les frameworks pour l'aborder, nous allons les découvrir ensemble. Cependant, il est fortement conseillé :

  • D'avoir déjà une bonne expérience de PHP ;
  • De maîtriser les notions de base de la POO;
  • D'avoir éventuellement des notions de namespace.

Si vous ne maîtrisez pas ces trois points, je vous invite vraiment à les apprendre avant de commencer la lecture de ce cours. Symfony2 requiert ces bases, et, si vous ne les avez pas, vous risquez de mettre plus de temps pour assimiler ce tutoriel. C'est comme acheter un A380 sans savoir piloter : c'est joli, mais cela ne sert à rien.

Vue d'ensemble de Symfony2

  1. Symfony2, un framework PHP

    1. Qu'est-ce qu'un framework ?

    2. Qu'est-ce que Symfony2 ?

    3. Télécharger Symfony2

  2. Vous avez dit Symfony2 ?

    1. L'architecture des fichiers

    2. L'architecture conceptuelle

    3. Symfony2 et ses bundles

  3. Utilisons la console pour créer un bundle

    1. Utilisation de la console

    2. Créons notre bundle

Les bases de Symfony2

  1. Mon premier « Hello World ! » avec Symfony2

    1. Créons notre route

    2. Créons notre contrôleur

    3. Créons notre template Twig

    4. Notre objectif : créer un blog

  2. Le routeur de Symfony2

    1. Le fonctionnement

    2. Les routes de base

    3. Les routes avancées

    4. Générer des URL

    5. Application : les routes de notre blog

  3. Les contrôleurs avec Symfony2

    1. Le rôle du contrôleur

    2. Manipuler l'objet Request

    3. Manipuler l'objet Response

    4. Les différents services

    5. Application : le contrôleur de notre blog

  4. Le moteur de templates Twig

    1. Les templates Twig

    2. Afficher des variables

    3. Structures de contrôle et expressions

    4. Hériter et inclure des templates

    5. Application : les templates de notre blog

  5. Installer un bundle grâce à Composer

    1. Composer, qu'est-ce que c'est ?

    2. Installer Composer et Git

    3. Installer un bundle grâce à Composer

  6. Les services, théorie et création

    1. Pourquoi utiliser des services ?

    2. Utiliser un service en pratique

    3. Créer un service simple

    4. Créer un service avec des arguments

Gérer la base de données avec Doctrine2

  1. La couche métier : les entités

    1. Notions d'ORM : fini les requêtes, utilisons des objets

    2. Créer une première entité avec Doctrine2

    3. Tout sur le mapping !

  2. Manipuler ses entités avec Doctrine2

    1. Matérialiser les tables en base de données

    2. Enregistrer ses entités avec l'EntityManager

    3. Récupérer ses entités avec un EntityRepository

  3. Les relations entre entités avec Doctrine2

    1. Présentation

    2. Relation One-To-One

    3. Relation Many-To-One

    4. Relation Many-To-Many

    5. Relation Many-To-Many avec attributs

    6. Les relations bidirectionnelles

  4. Récupérer ses entités avec Doctrine2

    1. Le rôle des repositories

    2. Les méthodes de récupération de base

    3. Les méthodes de récupération personnelles

    4. Utiliser les jointures dans nos requêtes

    5. Application : les entités de notre blog

  5. Les évènements et extensions Doctrine

    1. Les évènements Doctrine

    2. Les extensions Doctrine

  6. TP : Les entités de notre blog

    1. Synthèse des entités

    2. Adaptation du contrôleur

    3. Amélioration du contrôleur

Allons plus loin avec Symfony2

  1. Créer des formulaires avec Symfony2

    1. Gestion des formulaires

    2. Externaliser la définition de ses formulaires

    3. Les formulaires imbriqués

    4. Aller plus loin avec les formulaires

    5. Le type de champ File pour envoyer des fichiers

    6. Application : les formulaires de notre blog

  2. Validez vos données

    1. Pourquoi valider des données ?

    2. Définir les règles de validation

    3. Déclencher la validation

    4. Encore plus de règles de validation

    5. Valider selon nos propres contraintes

  3. Sécurité et gestion des utilisateurs

    1. Authentification et autorisation

    2. Première approche de la sécurité

    3. Gestion des autorisations avec les rôles

    4. Utiliser des utilisateurs de la base de données

    5. Utiliser FOSUserBundle

  4. Les services, utilisation poussée

    1. Les tags sur les services

    2. Dépendances optionnelles : les calls

    3. Les champs d'application, ou scopes

    4. Les services courants de Symfony2

  5. Le gestionnaire d'évènements de Symfony2

    1. Des évènements ? Pour quoi faire ?

    2. Écouter les évènements

    3. Les évènements Symfony2… et les nôtres !

    4. Allons un peu plus loin

  6. Traduire son site

    1. Introduction à la traduction

    2. Bonjour le monde

    3. Le catalogue

    4. Récupérer la locale de l'utilisateur

    5. Organiser vos catalogues

    6. Traductions dépendantes de variables

Astuces et points particuliers

  1. Utiliser des ParamConverters pour convertir les paramètres de requêtes

    1. Théorie : pourquoi un ParamConverter ?

    2. Pratique : utilisation des ParamConverters existants

    3. Aller plus loin : créer ses propres ParamConverters

  2. Personnaliser les pages d'erreur

    1. Théorie : remplacer les vues d'un bundle

    2. Pratique : remplacer les templates Exception de TwigBundle

  3. Utiliser Assetic pour gérer les codes CSS et JS de votre site

    1. Théorie : entre vitesse et lisibilité, pourquoi choisir ?

    2. Pratique : Assetic à la rescousse !

  4. Utiliser la console directement depuis le navigateur

    1. Théorie : le composant Console de Symfony2

    2. Pratique : utiliser un ConsoleBundle

  5. Déployer son site Symfony2 en production

    1. Préparer son application en local

    2. Vérifier et préparer le serveur de production

    3. Déployer votre application



Toutes les bonnes choses ont une fin !

Ce cours touche à sa fin. Mais il ne faut pas vous arrêter en si bon chemin !

Symfony2 est un framework avec des possibilités immenses, un nombre de bundles incalculable, bref, son apprentissage ne se termine jamais. Je vous invite donc à bien suivre tous les liens vers les pages des documentations officielles et des bundles que je vous ai donnés tout au long de ce cours. Cela vous permettra de perfectionner vos connaissances, et d'être au courant des fonctionnalités applicables à votre projet.

Le code complet du cours

Vous trouverez le code complet du blog créé à l'aide de ce cours à l'adresse suivante : www.tutoriel-symfony2.fr/livre/codesource. N'hésitez pas à parcourir le code et à vérifier que le vôtre correspond bien. Ce blog peut également vous servir de blog tout fait, libre à vous de vous en servir et de vous en inspirer.

Plus de lecture sur mon blog

Vous pouvez également visiter mon blog sur Symfony2 : www.tutoriel-symfony2.fr, dans lequel je vous tiens au courant des améliorations et corrections du cours, ainsi que des trucs et astuces très pratiques sur Symfony2. C'est un vrai blog, basé sur le code construit grâce au cours, et j'espère vous donner quelques tuyaux intéressants !

Licences

La licence de ce cours est la Creative Commons BY-NC-SA.

Certaines images de ce cours sont tirées de la documentation officielle. Elles sont donc soumises à la licence suivante :

Copyright (c) 2004-2010 Fabien Potencier

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Sensio Labs

6 commentaires

Merci pour ce cours qui me manquait, il n'est plus disponible sur OpenClassRoom. Surtout ne le supprimer pas, garder le bien, le nouveau cours n'a aucun rapport avec la création de blog proposer par celui-ci. S'il vous venait à l'esprit de le mettre à jour, n'en faites rien, ajouter le nouveau avec la mention V2 ;)

Merci pour ce cours qui me manquait, il n'est plus disponible sur OpenClassRoom. Surtout ne le supprimer pas, garder le bien, le nouveau cours n'a aucun rapport avec la création de blog proposer par celui-ci. S'il vous venait à l'esprit de le mettre à jour, n'en faites rien, ajouter le nouveau avec la mention V2 ;)

Kohadon

Le cours est encore disponible sur OCR :o

+1 -0

Merci pour ce cours qui me manquait, il n'est plus disponible sur OpenClassRoom. Surtout ne le supprimer pas, garder le bien, le nouveau cours n'a aucun rapport avec la création de blog proposer par celui-ci. S'il vous venait à l'esprit de le mettre à jour, n'en faites rien, ajouter le nouveau avec la mention V2 ;)

Kohadon

Le cours est encore disponible sur OCR :o

Source:Arzaor

Pas tout à fait, le cours sur OpenClassRoom ne traite plus de la création d'un blog… D'où ma suggestion de différencier les 2 si volonté de mise à jour.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte