Après le Symfony Live 2013, pour tous ceux qui n'ont pas pu venir, voici notre condensé des bonnes pratiques à respecter avec Symfony2 :

  1. Lire et relire la documentation officielle pour rester à jour.

  2. Respecter les codings standards (voir Coding standars et CSFixer).

  3. Découpage en Bundle : Créer un bundle pour gérer une fonctionnalité globale (ex: partie forum) ou s'il a vocation à être réutilisé. Attention : ne pas forcement découper ses fonctionnalités en plusieurs bundle si elle sont interdépendantes.

  4. Définir une configuration pour ses bundles via le DI : permet de ne charger que le nécessaire, de valider la configuration, afficher des messages d'erreurs clairs, etc.

  5. Si possible, ne pas mélanger Symfony2 et logique métier. Découper les objets métier en deux : le mapping SF2 dans une entité, la logique métier dans un model distinct.

  6. Pas de logique métier dans les contrôleurs. Faire appel à des services et des repository puis passer le resultat à la vue.
    Penser aux annotations pour alleger les controlleurs.

  7. Toujours écrire des FormType pour faire des formulaires. Les déclarer en service et leur passer des arguments (plutôt que de leur passer des options).

  8. Faire un service pour gérer la session (qui prend la session en argument) plutôt que de la gérer à plusieurs endroits dans les contrôleurs.

  9. Utiliser le DIC ! (Dependency Injection Component).

  10. Travailler avec des Test unitaires et fonctionnels. Avec les outils intégrés et ceux disponibles en parallèle.

  11. Utiliser Twig et Assetic.

  12. Écrire des commandes pour les tâches répétitives.

  13. Internationaliser dès le début du projet.

  14. En environnement de développement : Utiliser le Profiler, intercepter les redirections.

  15. En production : supprimer app_dev.php et autres, fournir une clé secrète, activer les CSRF, activer les caches Doctrine, personnaliser les pages d'erreurs.

Et aussi :

De manière général, veiller à la qualité et respecter les bonnes pratiques dans tous les aspects du projet : configuration serveur, HTML, CSS, Javascript, Git, etc.

Un grand merci à Tugdual Saunier

Sources:

Conférence au Symfony Live 2013 : "42 bonnes pratiques pour Symfony2" par Tugdual Saunier - Sensio