Vous êtes sur la page 1sur 12

Ingénierie des applications

Web
T.P. Introduction à Symfony 4.4
Niveau : L3IN
Code: INF336

WOHWE SAMBO Damien


1
Symfony: un framework basé sur le MCV

● Patron de conception logicielle "Modèle-Vue-Contrôleur"


●(Model-View-Controller) a été créé en 1980 par A. Goldberg à Xerox
PARC pour le langage Smalltalk-80
● Modèle (modèle de données),
● Vue (présentation, interface utilisateur)
● Contrôleur (logique de contrôle, gestion des événements,
synchronisation)

2
Installation et Setup
• Installer PHP 7.1 ou plus récent
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.1.1/
• Installer Composer https://getcomposer.org/download/
• Installer Symfony CLI pour commande symfony
https://symfony.com/download
• Dans le répertoire xampp/htdocs/symfony pour vérifier configuration
symfony minimale
symfony check:requirements
• Création d’une nouvelle application
symfony new nom_du_projet –-version=4.4 –full
composer create-project symfony/website-skeleton:
”^4.4” nom_du_projet
• Lancer le server symfony
symfony server:start
• https://symfony.com/doc/4.4/setup.html
3
Création d’une page

• 2 Etapes :
● Création d’une route (dans une URL sous la forme /about)

● Création d’un controller (fichier PHP contenant des fonctions)


<?php
// src/Controller/RandomController.php # config/routes.yaml
namespace App\Controller;
# the "app_lucky_number" route name
use is not important yet
Symfony\Component\HttpFoundation\Response; app_lucky_number:
path: /random_number
class LuckyController controller:
{ App\Controller\RandomController::num
public function number() ber
{
$number = random_int(0, 100);
return new Response( Route
'<html><body> Random
number:'.$number.'</body></html>'
);
}
}
Controller 4
Création d’une page (2)
• Vérifications des routes créées:

php bin/console debug:router

• Renvoi d’un fichier (vue)


• Utilisation du moteur à template twig
Composer require twig

// src/Controller/RandomController.php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class LuckyController extends AbstractController
{/**
* @Route("/random_number") {# templates/random/number.html.twig #}
*/ <h1>Your random number is {{ number }}</h1>
public function number():Response
{
$number = random_int(0, 100);
return $this->render(‘random/number.html.twig',
['number' => $number,]);
}
} 5
Les répertoires du projet symfony de base
• config/
• Contient les fichiers de configurations (routes et services).
• src/
• Cœur du projet et contient tous les fichiers PHP.
• templates/
• Contient toutes les vues Twig.
• bin/
• Les fichiers exécutables;
• Majeur parties des commandes se font ici.
• var/
• Automatique, il contient les fichiers log et de cache.
• vendor/
• Contient l’ensemble des librairies et les paquets des bundles.
• public/
• Les principaux répertoires à utiliser : src/ , templates/ and config/
6
Création de routes (1)
• Ils sont configurés
• dans des fichiers YAML, XML ou PHP;
• Utilisant les annotations (installer avant les annotations)
composer require doctrine/annotations
• Les routes sont directement appelées dans les fichiers de contrôle
(controller)

Configuration de l’annotation

Exemple d’appel d’annotation


7
Création de routes (2)
• A partir d’un fichier séparé
• Ne requiert aucune autre dépendance (installation);

Fichier YAML • Plus simple et explicites;


• Adapté pour les configurations

Fichier PHP

Fichier XML 8
Création des fichiers de contrôle (controller) (1)
• Ce sont des fonctions PHP;
• Elles lisent les informations d’un objet Request et renvoie un objet
Response (HTML page, JSON, XML, downloaded file, 404 error, etc.).
• Un controller est une méthode à l’interieur de la classe Contoller

Spécification du chemin d’accès

Utilisation de fonctionnalités
Classe controller : prédéfinies
LuckyController

controller de
LuckyController
: number()

Génération d’une page


via l’objet Response
9
Création des fichiers de contrôle (controller) (2)
• Génération d’une URL;
generateUrl(): créée une URL pour une route donnée

• Redirection;
• Redirection sur une
autre page
redirectToRoute()
redirect()

La méthode redirect() ne
vérifie pas la destination, ainsi la
mauvaise définition de la
destination pourrait conduire sur
une erreur.

10
Création des fichiers de contrôle (Controller) (3)
• Rendu des vues;
• Toutes les vues HTML (Twig) nécessitent le rendu
render(): Affiche un Template et y ajoute du contenu à l’aide de
l’objet Response

• Génération de Controller en commande;


php bin/console make:controller New_controllerController

• Possibilité de générer entièrement un CRUD (Creation, Update, Delete) pour


les entités;
• Génération automatique des Controller pour l’affichage, l’ajout, la mise à
jour et la suppression d’un objet.
Php bin/console make:crud Nom_entity 11
Gestion des SESSION
• Implémenté par Symfony comme un service
• Elle est gérée par le composant HttpFoundation
• Configuration par défaut : config/packages/framework.yaml
• Il stocke les informations des utilisateurs lors de requête client-serveur
• Nécessite l’importation de SessionInterface

12

Vous aimerez peut-être aussi