Pourquoi j'ai choisi Symfony 2 ... ?


Responsable Technique Meetserious

Symfony ./ Intervenant
symfony.3wa.fr

~ 22M Downloads

~ 2K Contributors
~ 200K Developers
Framework Moderne
100% PHP Orienté Objet


Qu'est ce qu'un framework?!
Déjà entendu ? utilisé ?


Mieux coder, c'est être
Plus maintenable // Plus collaborative
Plus efficace // Plus logique
Plus rapide // Plus scalable
Plus évolutive // Plus structurée
Plus organisée // Plus sécurisée
Plus plus plus ...

Pour qui Symfony 2 ?!!

Persévérant // Courageux
Ambiteux // Rigoureux
Curieux // Organisé
Travailleur // Perfectioniste

Il y a t-il du danger à développer
"from-scratch" aujourd'hui en PHP ?!

Et pour quelques
CMS de plus....







History of Symfony

Fabien POTENCIER (@fabpot)
Créateur de Symfony 2
Co-fondateur de SensioLabs


Symfony 2 versions







Utilisation full-stack de Symfony 2


Installation du framework
Web Debug Toolbar

Arborescence
Couches de Symfony 2


Précision et Professionnalisation


Du PHP avant tout !


HTTP Fondamentals

Couche Routing



Couche Controlleur


Couche Vue



La configuration



Les Formulaires



La couche Modèle

Du SQL à l'objet PHP...





Et si on deboguait...?

Profiler & Deboger

Utilisation de la console
Le Kernel




Authentification

Bundles et Composants



Un ensemble de composants découplés
Les Tests Unitaires et Fonctionnels




Contrôler votre code
Performances & Monitoring





Monitoring de performances



Des performances accrues pour une audiance très élevée



Une levée de fond historique

Micro-framework basé sur Symfony 2



Moyen framework basé sur Symfony 2


Communauty is a Big Family... :)

It's work around the world!
Une Communauté de contributeurs internationaux


Hiérarchie interne



De nombreux Bundles sur Symfony 2
Mooc de Symfony 2 sur OpenClassRoom




De nombreux événements partout dans le monde






Numéro 1 des plugins PhpStorm

Tester la sécurité et les standards PHP
Gammification de la qualité des projets



1ère Levée de fond pour un projet Open Source...





Certification Symfony 2

Gammification Symfony 2
Un framework très demandé et recherché...

Solution E-Commerce basé sur Symfony 2

Solution E-Commerce basé sur Symfony 2


Solution CRM basé sur Symfony 2






Projet fil-rouge
SymfoAcademy



Inspiré par Allociné...
Dashboard du Back-Office

Page Catégories du Back-Office

Page Réalisateurs du Back-Office





Quelques aperçus...




...et des technologies montantes

About the futur

Symfony 3 en marche


...et le langage évolue vers sa version 7 !


Quand Facebook contribue aussi à PHP



Horus CMF

Mon projet Symfony 2


Démonstration

github.com/Symfomany/prez

Platinum Medal SensioLabsInsight


Tous les test passent sur Travis

Et sur Scrutinizer...

Collation UTF-8 MySql

Timezone sous php.ini

OPCache de PHP 5.5

symfony.com/download

https://getcomposer.org/

Mettre les droits d'écriture sur les logs et le cache

php app/check.php pour checker la configuration

Autoload et norme PSR-4

Composer: Autoload et Namespaces

Création de Bundle

Fichier principal du Bundle


Routing - Controlleur - Vue

Annotations

Routing

Gérer vos dépendances avec composer.json

Récupérer Composer

Mettre à jour vos dépendances

Installer Symfony 2 via Composer

Multi-Héritage de vue

Héritage 3 Tiers

Twig: Système de blocks


Front Controlleur avec Requête-Réponse

Configuration globale du projet

Référence d'une configuration de couche

Objet Response

Redirection

Forward

Not Found Exception



Messages flashs


Argument en route


Transmission de données

Render


dump() pour déboger

Metadatas Doctrine

Générer les entités

Générer les méthodes d'entités

Annotations

Formulaire en classe

Traitement des formulaires

Génération de formulaire

Déboger son formulaire

Formulaire et Entité

Validation par annotations
Couche Security



Toolbar Authentification
Internationalisation


Objet Trans

Langue choisie depuis le routing

Langue choisie depuis Twig

Ecrire des Tests Unitaires

Ecrire des Tests Fonctionnels
HTTP Cache
Cache-Control
Expires
ETag
Last-Modified

Cache-Control

Entête de la Réponse

Entête Cache-Control

HTTP Cache Complet

Les données initiales

Fixtures par classe


Génération de Documentation

PHPDocumentor Responsive



Avec FOSRestApi


SensioLabsInsight Issues & Reporting




Plugins de PHPStorm

.gitignore de Symfony 2

Versionning de PHPStorm

Tips & Tricks

Liste des commandes

Débuger une requete SQL

Débuger une requete DQL

Les fonctions en Twig

Débuger du YAML

Débuger du Twig

Lancer le serveur en production

Débuger les entités

Lire les CHANGELOG


Explorer les classes

Class Debug pour les lourds objets

Les Meilleurs Bundles


























Be curious not judgmental ...
Walter Whiteman
Pourquoi j'ai choisi Symfony 2 ... ?
Symfony 2
By Julien Boyer
Symfony 2
Presentation about Symfony 2 for 3WA
- 14,467