Vous êtes sur la page 1sur 34

Symfony 5 : introduction

Achref El Mouelhi

Docteur de l’université d’Aix-Marseille


Chercheur en Programmation par contrainte (IA)
Ingénieur en Génie logiciel

elmouelhi.achref@gmail.com

H & H: Research and Training 1 / 24


Plan

1 Introduction

2 Installation

3 Symfony 5 : structure et fonctionnement

4 Symfony 5 : quelques outils

H & H: Research and Training 2 / 24


Introduction

Symfony

Symfony
framework PHP sorti en octobre 2005
I c

français ELH
U
L MO
conçu et développé par SensioLabs

h r e fE
open-source
A c
c
l’architecture MVC
basé sur
utilisant le protocole HTTP

H & H: Research and Training 3 / 24


Introduction

Symfony
Framework ?
En français : cadre de travail
Ensemble de composants logiciels et API facilitant le
I c

H
développement d’applications : pour les développeurs maitrisant
EL
U
certains concepts informatiques (POO, SQL, MVC...)

L MO
f E
chre
c A

H & H: Research and Training 4 / 24


Introduction

Symfony
Framework ?
En français : cadre de travail

I c
Ensemble de composants logiciels et API facilitant le

H
développement d’applications : pour les développeurs maitrisant
EL
U
certains concepts informatiques (POO, SQL, MVC...)

L MO
f E
re et CMS
c h
Ne pas confondre framework
c A
IDE (en anglais Integrated Development Environment,
Environnement de développement intégré)
CMS (en anglais Content Management System, Système de
gestion de contenu) pour les développeurs novices

H & H: Research and Training 4 / 24


Introduction

Symfony

Pourquoi utiliser un framework ? (Ce n’est pas obligatoire)


I c

Un code de qualité
EL H
U
MOprojet
Une meilleure structuration de notre
L
h r e f E gérés par le framework
Conflits entre dépendances
A c et API mis à disposition de développeurs
c
Plusieurs composants

H & H: Research and Training 5 / 24


Introduction

Symfony

Exemple d’utilisation de Symfony


I c

Dailymotion (depuis 2009)
ELH
U
Composer
L MO
OpenClassroom f E
chre
SNCF
c A

...

H & H: Research and Training 6 / 24


Introduction

Symfony

Les différentes versions de Symfony

I c

Symfony 1 : sorti en octobre 2005
ELH
Symfony 2 : sorti en août 2011 OU
L M
f E 2015
Symfony 3 : sorti en novembre
r e
Symfony 4 A chen novembre 2017
: sorti
c

Symfony 5 : sorti en novembre 2019

H & H: Research and Training 7 / 24


Installation

Symfony

Installation sous Windows (avec un installer)

Téléchargez https://get.symfony.com/cli/setup.exe puis installez

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 8 / 24


Installation

Symfony

Installation sous Windows (avec un installer)

Téléchargez https://get.symfony.com/cli/setup.exe puis installez

I c

ELH
U
MO
Installation sous Linux (avec une commande)
L
r e fE
wget https://get.symfony.com/cli/installer
h -O - | bash
c
c A

H & H: Research and Training 8 / 24


Installation

Symfony

Installation sous Windows (avec un installer)

Téléchargez https://get.symfony.com/cli/setup.exe puis installez

I c

ELH
U
MO
Installation sous Linux (avec une commande)
L
r e fE
wget https://get.symfony.com/cli/installer
h -O - | bash
c
c A
Installation sous Mac (avec une commande)

curl -sS https://get.symfony.com/cli/installer | bash

H & H: Research and Training 8 / 24


Installation

Symfony
Pour créer un projet Web Symfony 5

Exécutez symfony new --full premier projet symfony

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 9 / 24


Installation

Symfony
Pour créer un projet Web Symfony 5

Exécutez symfony new --full premier projet symfony

I c

Pour créer un projet console ou microservice Symfony 5EL
H
Exécutez symfony new premier projetM
OU
f E L symfony

c h re
c A

H & H: Research and Training 9 / 24


Installation

Symfony
Pour créer un projet Web Symfony 5

Exécutez symfony new --full premier projet symfony

I c
Pour créer un projet console ou microservice Symfony 5EL
H
Exécutez symfony new premier projetM
OU
f E L symfony

c h re
Pour lancer un cprojetASymfony 5 créé avec la commande symfony, exécutez
cd --full premier projet symfony

symfony server:start ou symfony serve

H & H: Research and Training 9 / 24


Installation

Symfony

I c

ELH
Pour créer un projet Web Symfony d’une version antérieure
U
O projet symfony
M
Exécutez symfony new --full premier
L
--version=4.4
h r e fE
A c
c

H & H: Research and Training 10 / 24


Installation

Symfony

Pour configurer un projet Symfony existant (sur GitHub par


exemple)

I c

# cloner un projet existant
git clone lien_vers_repository_github ELH
U
L MO
# se positionner dans le projet
f E
cd my-project/
A c hre
c
les dépendances composer dans vendor
# installer
composer install

H & H: Research and Training 11 / 24


Installation

Symfony

Sous Visual Studio Code


Installer l’extension PHP Namespace Resolver I c

H
EL pour
Elle permet d’importer les namespacesU nécessaires
certaines classes
L MO
r e E sur la classe concernée
fdroit
A c h
Pour l’utiliser, faites clic

c
Allez dans Import Class et choisir le namespace
correspondant

H & H: Research and Training 12 / 24


Symfony 5 : structure et fonctionnement

Symfony
Structure d’un projet Symfony 4/5

bin/ : contenant deux exécutables, la console de Symfony et phpunit

config/ : contenant les fichiers de configuration (routes, ORM...)

I c

public/ : seul dossier accessible de l’extérieur (contenant le contrôleur frontal
index.php)
ELH
U
MO
src/ : contenant les fichiers sources de l’application (contrôleurs, entités, formulaires,
DAO...)

f E L
hre
templates/ : contenant les vues (vue partielle) de l’application
c
c A
tests/ : contenant les fichiers permettant de tester l’application

translations/ : contenant les fichiers de l’internationalisation

var/ : utilisé par Symfony pendant l’exécution, contenant les données de cache, le log et
les sessions

vendor/ : contenant les fichiers nécessaires pour une application Symfony (mentionnés
dans composer.json)

H & H: Research and Training 13 / 24


Symfony 5 : structure et fonctionnement

Symfony

Kernel ?
noyau de Symfony
défini dans vendor/symfony/http-kernel
I c
H
ELle contrôleur adéquat
utilisé par le contrôleur frontal pour désigner
U
MO
pour répondre à la requête HTTP reçue
L
h r e fE
A c
c

H & H: Research and Training 14 / 24


Symfony 5 : structure et fonctionnement

Symfony

Kernel ?
noyau de Symfony
défini dans vendor/symfony/http-kernel
I c
H
ELle contrôleur adéquat
utilisé par le contrôleur frontal pour désigner
U
MO
pour répondre à la requête HTTP reçue
L
h r e fE
A c
c
Contrôleur frontal
point d’entrée d’une application Symfony
défini dans public/index.php

H & H: Research and Training 14 / 24


Symfony 5 : structure et fonctionnement

Symfony

Deux environnements de travail


prod (destiné aux utilisateurs finaux de l’application)

I c

montrant l’application telle qu’elle sera visible par les visiteurs
ELH
rapide à exécuter
n’affichant pas les messages M O U
fE L d’erreur.

c h e
dev (destinés aux dréveloppeurs)
c lentA

Plus que la version de production
Environnement de débogage complet
Possibilité d’ajouter des nouvelles fonctionnalités

H & H: Research and Training 15 / 24


Symfony 5 : structure et fonctionnement

Symfony

Remarque I c

L H
éeE
Par défaut, une application est configurU à l’environnement dev
M O
Pour changer d’environnement,
f L
E allez dans .env et mettez la
valeur de APP ENV ràe
A ch prod

H & H: Research and Training 16 / 24


Symfony 5 : structure et fonctionnement

Symfony
Extrait d’index.php

$kernel = new Kernel($_SERVER[’APP_ENV’], (bool) $_SERVER[’


APP_DEBUG’]);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
I c

$response->send();
$kernel->terminate($request, $response);
ELH
U
L MO
f E
c hre
c A

H & H: Research and Training 17 / 24


Symfony 5 : structure et fonctionnement

Symfony
Extrait d’index.php

$kernel = new Kernel($_SERVER[’APP_ENV’], (bool) $_SERVER[’


APP_DEBUG’]);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
I c

$response->send();
$kernel->terminate($request, $response);
ELH
U
L MO
f E
Explication
c hre
c A

Le contrôleur frontal charge le kernel selon l’environnement précisé dans
.env

Il récupère la requête

Il utilise le kernel pour retourner une réponse

H & H: Research and Training 17 / 24


Symfony 5 : structure et fonctionnement

Symfony

Modèle Vue

Demande Construction

I c
de données page HTML

ELH
Adresse 1
U Contrôleur 1
Interception
MO Exécution Page HTML

f EL
de requête

c h re
Adresse 2
c
A Contrôleur frontal Kernel Contrôleur 2

. Recherche .
. contrôleur .
. adèquat .

Adresse n Routeur Contrôleur n

H & H: Research and Training 18 / 24


Symfony 5 : structure et fonctionnement

Symfony
Déroulement

L’utilisateur saisit l’adresse d’une page de notre site

Le contrôleur frontal intercepte la requête et il la transmet au Kernel


I c
H
EL à la page
Le Kernel demande au Routeur le contrôleur adéquat
demandée
O U
L M
f Ele Kernel exécute le contrôleur
À la réception d’une réponse,
r e
Le contrôleurA ch avec le modèle pour récupérer ou stocker
communique
certaines cdonnées
Ensuite il renvoie ces données à la vue pour qu’elle construise la page
HTML et la lui retourne.

Enfin le contrôleur envoie à l’utilisateur la réponse (page HTML).

H & H: Research and Training 19 / 24


Symfony 5 : quelques outils

Symfony

I c

Quelques outils Symfony 5
ELH
U
Console
L MO
f E
Flex
c hre
c A

H & H: Research and Training 20 / 24


Symfony 5 : quelques outils

Symfony

Console
Outil (composant) pour développeur
Disponible depuis le lancement de Symfony
I c

H
EL en ligne de
commandes (CLI ou CommandM Line
U
Permettant d’interagir avec l’application Symfony
OInterface).
L
E par le fichier console
f bin
r e
Défini dans le répertoire
c h
c A

H & H: Research and Training 21 / 24


Symfony 5 : quelques outils

Symfony

Console
Outil (composant) pour développeur
Disponible depuis le lancement de Symfony
I c

H
EL en ligne de
commandes (CLI ou CommandM Line
U
Permettant d’interagir avec l’application Symfony
OInterface).
L
E par le fichier console
f bin
r e
Défini dans le répertoire
c h
c A
Pour consulter la liste des commandes disponibles
php bin/console

H & H: Research and Training 21 / 24


Symfony 5 : quelques outils

Symfony

La console, pourquoi ?
I c
Pour :
E LH
U
MOôleurs, entités, formulaires,
faciliter la création/génération de contr
L
bundles...
h r e fE
c
éviter les erreurs
A
c
le développement
accélérer

H & H: Research and Training 22 / 24


Symfony 5 : quelques outils

Symfony

I c
H
EL générer avec la
Pour consulter la liste des éléments que l’on puisse
console O U
L M
php bin/console list make
h r e fE
A c
c

H & H: Research and Training 23 / 24


Symfony 5 : quelques outils

Symfony
Flex

Outil pour développeur

Disponible depuis la version 4 de Symfony

I c

Exécuté lorsque Composer est utilisé pour installer une nouvelle dépendance (recette ou
recipes en anglais) afin de la configurer
ELH
U
L MO
f E
c hre
c A

H & H: Research and Training 24 / 24


Symfony 5 : quelques outils

Symfony
Flex

Outil pour développeur

Disponible depuis la version 4 de Symfony

I c

Exécuté lorsque Composer est utilisé pour installer une nouvelle dépendance (recette ou
recipes en anglais) afin de la configurer
ELH
U
L MO
f E
c hre
c A
recipe = bibliothèque standard (définie dans packagist : dépôt de Composer) + configuration

H & H: Research and Training 24 / 24


Symfony 5 : quelques outils

Symfony
Flex

Outil pour développeur

Disponible depuis la version 4 de Symfony

I c

Exécuté lorsque Composer est utilisé pour installer une nouvelle dépendance (recette ou
recipes en anglais) afin de la configurer
ELH
U
L MO
f E
c hre
c A
recipe = bibliothèque standard (définie dans packagist : dépôt de Composer) + configuration

Pour consulter la liste des recettes

https://flex.symfony.com/

H & H: Research and Training 24 / 24

Vous aimerez peut-être aussi