100% ont trouvé ce document utile (2 votes)
896 vues34 pages

Introduction à Symfony 5

Le document introduit le framework Symfony en expliquant son historique, son fonctionnement basé sur l'architecture MVC, ses différentes versions et comment l'installer et créer des projets.

Transféré par

losus007
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (2 votes)
896 vues34 pages

Introduction à Symfony 5

Le document introduit le framework Symfony en expliquant son historique, son fonctionnement basé sur l'architecture MVC, ses différentes versions et comment l'installer et créer des projets.

Transféré par

losus007
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

[email protected]

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