Introduction au Framework
Symfony
UP Web
AU: 2020/2021
Plan
• Introduction
• Framework
• Framework et CMS
• Symfony 4 : Introduction
• Symfony 4 : Prise en main
– L’architecture MVC
– Mise en place de l’environnement
– Déroulement d’une application Symfony4
– Controleur
– Routing
2
Introduction
Framework
3
C’est quoi un Framework ?
Framework
Cadre de travail
• Structurer votre projet
• Apporter un ensemble d'éléments qui définissent le squelette d'une
application
• Offrir des composants et bibliothèques réutilisables
• Offrir une liberté dans la réalisation technique de l’application
4
C’est quoi un Framework ?
Panorama Framework PHP
5
C’est quoi un CMS ?
• CMS/ Content Management System
• Système de gestion de contenu, permettant à un ou plusieurs
utilisateurs de créer, gérer le contenu d'un site Web
• Composé d’un « noyau » avec les fonctionnalités de
base (pages, gestion des utilisateurs, etc.) sur lequel se
greffent des modules (ou extensions) spécifiques comme par
exemple un forum, une newsletter, un annuaire, un glossaire,
des actualités…
6
C’est quoi un CMS ?
CMS PHP
7
CMS et Framework
Le choix entre un CMS et un Framework dépend du
▪Besoin du développeur
CMS Framework
● Fonctionnalités sur mesure
Fonctionnalités standards:
● Pas d’architecture globale du site
● Gestion de panier
Web
● Gestion du back office
● Pas de fonctionnalités standards
● Liberté de créer ses propres
fonctionnalités
8
Pourquoi utiliser un Framewok?
Portabilité : L’abstraction de la base de données et du cache permet
à votre application d’être utilisée sur de nombreuses configurations
de serveurs différents
Temps de développement plus court : Puisque vous n’êtes pas obligé
de réécrire le code sur la gestion des utilisateurs, et même de
l’authentification, de l’accès à la base de données et aux
formulaires, le temps de développement ce réduit considérablement
Sécurité des applications : Les fonctions de sécurité comme
l’authentification et les autorisations sont gérées par le framework
9
Pourquoi utiliser un Framewok?
Soutenue par la communauté : Les frameworks ont des forums, des
listes de diffusion et des canaux IRC (Internet Realy Chat) pour les
soutenir
Plugins et modules : Un bon nombre de membres de la communauté
développent des plugins et des modules que vous pouvez télécharger
et utiliser dans votre application
Règles de codage stricts : La plupart des frameworks vous forcent à
suivre des principes de codage, notamment le modèle MVC
10
Critères de comparaison
Taille des projets : les petits projets peuvent être développer avec un
framework ultralight
Documentation : une documentation complète est un réel plus !
Performance : certaines frameworks sont trop gourmands. Même le
moindre « Hello World » peut nécessiter l’appel à plus de 100 fichiers
différents
Communauté : un forum actif sera synonymes de personne prête à vous
aider en cas de problème
Évolutivité : de quand date la dernière mise à jour
11
Et pourquoi Symfony
L et pas un autre ?
Comparaison des Frameworks
Adapté au développement d’applications rapides
Ses principales caractéristiques :
▪Pas de configuration nécessaire
▪Licence MIT
▪Entièrement Orienté Objet (OO)
Est simple à utiliser, performant et d’une vitesse d’exécution
remarquable.
Ses principales caractéristiques :
▪Simplicité de prise en main
▪Nombreuses librairies
▪Complètement orienté objet
Laravel est le framework PHP qui est principalement connu pour
son temps de développement réduit avec une approche de codage
simple.
Ses principales caractéristiques :
▪Bonne documentation
▪Services postaux intégrés
▪Mise sur le marché plus rapide 12
Et pourquoi Symfony et pas un autre ?
Comparaison des Frameworks
Considéré comme une grosse bibliothèque de fonctionnalités
plutôt qu'un framework
Il n'est pas très simple à comprendre
Ses principales caractéristiques :
▪Conception totalement orientée objet
▪Puissant, extensible et modulaire
▪Fortement adapté à l’environnement professionnel
▪Alliés et contributeurs hors normes : Microsoft, Google…
Il est spécialement dédié à la conception d’applications
moyennes à très lourdes
Ses principales caractéristiques :
▪Licence MIT
▪Extensible et modulaire
▪Supporte Ajax
13
Et pourquoi Symfony et pas un autre ?
Comparaison des Frameworks (International)
Comparatif des statistiques Google sur les recherches mondiales ayant pour mot clé
le nom d’un framework PHP
14
Et pourquoi Symfony et pas un autre ?
Comparaison des Frameworks (France)
Comparatif des statistiques Google sur les recherches mondiales ayant pour mot clé
le nom d’un framework PHP
15
Le meilleur des Framework ?
Quel est le meilleur des
framework?
La mauvaise question
16
La bonne question !
Quel est le framework le mieux adapté à mon besoin ?
17
Symfony : Présentation
Qui est derrière tout ça ?
L’entreprise : SensioLabs.
Sensio est une agence web créée il y a 12 ans. Et plus
particulièrement Fabien Potencier et toute son équipe.
Fabien Potencier
Une grande réputation
Lancé en 2005, Symfony est aujourd'hui un framework stable connu et reconnu à
l’international.
Symfony dispose aussi une communauté active de développeurs, intégrateurs,
utilisateurs et d'autres contributeurs qui participent à l'enrichissement continu de l'outil
18
Symfony : Présentation
Qui utilise Symfony ?
De nombreux sites et applications de toutes tailles et de tous les types !
C'est par exemple le cas de Yahoo! , Dailymotion, Drupal8
De la version 1.x à la version 2.x à la version 3.x à la version 4.x
▪ Symfony 1.x ayant connu un succès notable, une refonte complète a donné naissance à
la version 2.x qui tire partie des évolutions de PHP 5.3
▪ La version 2.x offre donc un framework incluant un ORM (Doctrine 2), le moteur de
templating Twig, la gestion des emails avec SwiftMailer, ou encore un composant de
sécurité pour la gestion de l’authentification utilisateur et des permissions…
▪ La version 3.x l’utilisation de la version 5.5.9+ de PHP. Il est plus découplé et plus
réutilisable que jamais et le phénomène de rétro-compatiblité (Backwords-Compatibility)
autant que possible.
▪ La version 4.x: l’utilisation de la version 7.1.3+ de PHP. C’est une version améliorée
et plus légère de Symfony 3, qui est livrée par défaut avec moins de librairies optionnelles
comme Doctrine. L’objectif est d’améliorer la performance de l’application et de mieux
s’adapter à toute taille de projet. Cette version permet aussi bien de construire une
petite API ou une application web de taille importante.
19
L’architecture MVC
✔ Modèle: l’implémentation de la logique métier
✔ Vue: C’est plus lié à l’affichage.
✔ Contrôleur: le lien entre le modèle et la vue
20
L’architecture d’un projet
Symfony4
✔ Le projet: c’est la structure qui englobe tout
✔ L’application: Elle correspond généralement à un site.
✔ Les modules: Ce sont des unités fonctionnelles de l’application (Par exemple:
clients, produits, commandes)
✔ Action: les Actions contiennent la logique applicative. Ils vérifient l’intégrité de
la demande et préparent les données nécessaires à la couche présentation.
✔ Template Twig: Twig est le moteur de templates présent dans Symfony. Twig
est un moteur de templates PHP
✔ Route: Une route forge le lien entre une action présente dans le contrôleur et
une URL.
21
Déroulement d’une application Symfony 4
Symfony suit un schéma simple et identique pour toutes les requêtes
22
L’architecture d’un projet
Symfony4
Contient les fichiers exécutables(exemple bin/console)
bin
config Les fichiers de configuration de notre projet
public Les fichiers desservis par les serveurs HTTP
src Les fichiers contenant toute la logique de notre projet
var Contient les tests automatiques (exemple Unit tests)
vendor Le dossier contenant les dépendances nécessaire au
fonctionnement de notre projet
.env Fichier contenant la configuration de l'environnement
d'exécution de notre code
23
Composer
• C’est un PHP Package Manager.
• Lien
d’installation:[Link]
24
Flex
• Un plugin composer
• Automatiser l’installation de package/bundle
Faciliter l’ajout et la suppression des dépendances
Avoir une configuration par défaut
Installer un bundle sans Flex Installer un bundle avec Flex
composer require nom_package composer req « alias de pack»
- Instancier le bundle dans le kernel - Définit une configuration par défaut
- Créer la configuration dans [Link] - Bundle(s) à instancier
- Importer le routing dans [Link] - Fichiers (config, routing ou autre) à créer
- Entrées à rajouter
dans .gitignore, .env, Makefile, etc
25
Atelier 2.1:
Installation et configuration de
Symfony 4 et création du 1er projet
26
Contrôleur
Pour générer un contrôleur via la console, vous
pouvez utiliser le maker de Symfony disponible depuis
sa version 4
php bin/console make:controller NomController
• On élimine le prefix « Action »
• Les types de réponse:
Reponse
Request
Twig
... 27
Controleur
Fonctions de base de la classe AbstractController
28
Controleur Frontal
public/[Link]
▪ Il joue le rôle de dispatcheur :
▪ Intercepte les requêtes
▪ Appelle le noyau de symfony ([Link])
▪ Le noyau prépare la réponse à rendre
29
Les Routes
• Les routes se définissent dans un fichier qui se
trouve sous Resources/config/[Link]
• Il existe deux types de routes:
[Link] sans paramètres
[Link] avec paramètres
30
Les Routes en Symfony4
31
Les Routes en Symfony4
1ère façon: YML
Une route Un chemin Nom du contrôleur Nom de la méthode
(ici EtudiantController) (ici IndexAction)
2ème façon: Annotation
32
Atelier 2.2:
création d’un contrôleur + routing
33
Merci pour votre attention
34
Références
[Link]
[Link]
[Link]
[Link]
/
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
35