Vous êtes sur la page 1sur 6

Atelier 1 Symfony 5 : Prise en main

Objectifs :

Découvrir l’architecture d’un projet Symfony


Notion de Routing
Ecrire dans le contrôleur
Créer des pages « twig »

Créer le contrôleur « InscriptionController.php »

1. Routing
Aller dans le dossier « src » → puis « Controller » créez une nouvelle page et enregistrez la
« InscriptionController.php » (respectez la casse)

Y mettez

<?php // src/Controller/InscriptionController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

Atelier Symfony 5 Page 1


class InscriptionController
{
public function number()
{
$number = random_int(0, 100);

return new Response(


'<html><body>Ceci est une première page Symfony<br>
Lucky number: '.$number.'</body></html>'
);

}
}
?>
En utilisant un framework, on n’a pas de pages “PHP” mais on a plutôt des actions (des
méthodes) qu’on les appelle avec des alias (expressions) qu’on appelle des “routes” et
qu’on les met juste après le contrôleur frontal : http://127.0.0.1/my-project/public/index.php/

Il y a 2 méthodes pour mettre le routing, 1ère méthode dans le fichier “routing.yaml”

Je vous déconseille d’utiliser cette méthode, désormais on utilise le routing via les
Annotations

2ème méthode de Routing avec « Annotation »


D’abord il faut installer le module annotation (l’installation n’est pas indispensable avec la version 5)

Pour le faire il faut copier le « composer.phar » dans le dossier de votre projet (exemple dossier my-
project) puis écrire la commande

Php Composer.phar require annotations


Après installation il faut ajouter dans le controller dans la partie ou on écrit les « use »

use Symfony\Component\Routing\Annotation\Route;
puis on ajoute la route

/**
* @Route("/number")
*/
On obtient le code suivant

Atelier Symfony 5 Page 2


Exécution de notre premier exemple

Tapez l’URL suivante

http://127.0.0.1/my-project8/public/index.php/number (respectez le nom de notre projet ici my-


project8)

Vous obtenez

Modifier le route ainsi

/**
* @Route("/Accueil", name="Accueil")
*/

Atelier Symfony 5 Page 3


Puis mettez la nouvelle « route » dans l’URL du navigateur

Consulter le « Profiler » s’il n’existe pas déjà en pied de page, installez le de la même manière c'est-à-
dire en utilisant le composer

Php Composer.phar require –dev profiler

Cliquez à gauche sur « Event » puis sur « Routing »

2. TWIG: Utilisation de la méthode render()


On a utiliser la classe “Response” dans l’exemple précédent, sachant que Symfony est développé
initialement sur la base de deux classes principales : “Response” et “Request”. Response retourne et
affiche les données tandis que “Request” récupère les données saisies par l’utilisateur.

Maintenant on va utilisez les fichiers “twig” via la méthode “render”

Utilisez les Templates « Twig »


D’abord il faut installer le module « twig » (c’est pas indispensable aussi dans la version 5)

Php Composer.phar require twig

Atelier Symfony 5 Page 4


Un nouveau dossier est ajouté dans l’arborescence nommé

Contenant la page « base.html.twig » contenant

D’abord ajouter cette bibliothèque dans le Controller dans la partie « use »

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
Puis changer le nom de la classe pour hériter de la classe « AbstractController »

Class InscriptionController extends AbstractController


Puis on va changer le « retour » de la fonction « number » en utilisant la méthode “render”

return $this->render('Inscription/accueil.html.twig', [
'number' => $number,
]);
Créez le dossier « Inscription » sous « templates »

Dans le dossier templates/Inscription créez la bage « accueil.html.twig »

Mettez dans la page « accueil.html.twig » le code suivant

{# templates/Inscription/accueil.html.twig #}

<h1><span style="color:red"> Bienvenue à notre page d'accueil</span> </h1>


<h1>Your lucky number is {{ number }}</h1>

Actualisez la page d’exécution dans votre navigateur, Vous obtenez:

Atelier Symfony 5 Page 5


3. Création de la page “voir{id}”
Ajouter dans le Controller le script suivant :

/**
* @Route("/voir/{id}", name="voir")
*/
public function voirAction($id){
return $this->render('Inscription/voir.html.twig',
array('id'=>$id));
}
Aller dans le dossier « Inscription » sous « templates » et créer la page « voir.html.twig » contenant
le code :

{# templates/Inscription/voir.html.twig #}

<h1>Détails du Job numéro {{id }}</h1>

Essayer avec l’url suivante

array('id'=>$id) permet de passer un paramètre au fichier twig


'id' est une enveloppe contenant la variable $id, le fichier twig
ensuite récupère cette enveloppe et l’utilise

Atelier Symfony 5 Page 6

Vous aimerez peut-être aussi