Faire sa première application avec Symfony

Vous allez créer votre première application afin de comprendre les concepts de base du framework Symfony

Korzeremi02
7 min readMay 28, 2024

Qu’est-ce que Symfony ?

Symfony est un framework PHP très populaire et puissant utilisé par les développeurs pour créer des applications web modernes et évolutives. Il est conçu pour être flexible et permettre de faire gagner un maximum de temps aux développeurs l’utilisant. Vous pouvez voir Symfony comme une grande boite à outils complète permettant de faciliter la vie des développeurs web. De nombreuses raisons subsistent pour vous inciter à utiliser Symfony mais la qualité et la quantité des documentations officielles ainsi que l’énorme communauté autour de ce framework font de celui-ci un choix judicieux selon moi.

Largement utilisé dans tout type d’industrie allant de la petite application de gestion aux grandes plateformes web, la demande de développeur l’utilisant ne cesse de croitre. Voyons ensemble comment créer votre première application Symfony.

Quelques prérequis

Avant tout, plusieurs éléments sont nécessaires afin de créer votre première application.

  • Il faut bien entendu maitriser un minimum les concepts liés au développement tels que l’utilisation du terminal ou d’un IDE (Environnement de Développement Intelligent).
  • Une connaissance de base du langage PHP est nécessaire.
  • Une connaissance de base du langage BASH est nécessaire.

Me concernant, je travaille sur un environnement Linux Ubuntu. Les commandes disposées dans cet article peuvent être amenées à être réadaptées pour correspondre à votre système. N’hésitez-pas à vous référer aux documentations officielles.

Installation de Symfony

Il est nécessaire d’installer plusieurs dépendances dont a besoin le framework Symfony.

Installation de wget

Ce paquet contenant la commande wget est normalement installé par défaut. Cependant dans le cas où celui-ci serait absent, tapez la commande suivante :

sudo apt install wget

Cette commande vous permettra par la suite de télécharger l’installateur de Symfony.

Installation de Nano

Ce paquet est un éditeur de texte facile à utiliser comparé à Vim. Il est normalement installé par défaut dans Ubuntu. Tapez la commande suivante dans le cas où celui-ci ne le serait pas :

sudo apt install nano

Installation de PHP

Ce paquet est nécessaire car Symfony est un framework PHP et celui-ci se base donc sur ses technologies pour fonctionner.

Ouvrez un terminal et installez le paquet php-cli.

sudo apt install php-cli

Tapez la commande suivante pour vérifier que l’installation s’est bien déroulée. Vous devriez avoir le numéro de version d’affiché si l’installation s’est bien déroulée.

php -v

Installation de composer

Composer est un logiciel de gestion de dépendance libre écrit en PHP. Il vous permettra d’installer des dépendances dans vos projets.

Dans le même terminal que précédemment, tapez les commandes suivantes pour effectuer son installation :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Il est nécessaire de déplacer composer.phar dans votre dossier bin :

sudo mv composer.phar /usr/local/bin/composer

Vous pouvez à présent passer à l’installation de Symfony.

Installation de Symfony

Téléchargez l’installateur et exécutez le :

wget https://get.symfony.com/cli/installer -O - | bash

Une fois l’installation terminée, le binaire Symfony ne pourra pas être “indexé” dans notre terminal. Si vous tapez la commande symfony, celle-ci vous renvoie une erreur.

Pour résoudre cela il faut ajouter Symfony à votre PATH. Dans votre terminal, tapez la commande suivante pour modifier le fichier ~/.bashrc :

sudo nano ~/.bashrc

Et ajoutez la ligne suivante à la fin du fichier :

export PATH="$HOME/.symfony5/bin:$PATH"

Sauvegardez et tapez la commande suivante pour recharger la configuration bashrc avec vos modifications :

source ~/.bashrc

La commande symfony apparait désormais.

Il est nécessaire de vérifier les prérequis de Symfony :

symfony check:requirements

Un message d’erreur similaire à l’image ci-dessous devrait s’afficher.

Pour résoudre le problème, vous devez installer le paquet php-simplexml :

sudo apt install -y php-simplexml

En retapant la commande pour vérifier les prérequis de Symfony, plus aucune erreur n’apparait.

Vous êtes à présent fin prêt à débuter avec Symfony !

Création de votre projet

Votre projet Symfony sera une application web appelée Randony permettant de générer un nombre aléatoire et de l’afficher sur une page spécifique.

Dans votre terminal, tapez la commande suivante pour créer votre projet :

symfony new Randony --version="7.0.*" --webapp

Détaillons la commande ci-dessus :

  • new, indique que vous désirez créer un nouveau projet.
  • Randony, il s’agit du nom de votre projet. Vous pouvez le modifier à votre guise.
  • --version=”7.0.*”, spécifie la version de Symfony que vous souhaitez utiliser. En l’occurence, la version 7.0 ou ultérieure sera utilisée.
  • --webapp, indique à Symfony de créer une application web.

Votre projet est à présent créé. Il ne vous reste plus qu’à le lancer sur votre serveur pour l’admirer.

Rendez-vous dans le répertoire de votre projet avec la commande cd et démarrez le serveur :

cd Randony
symfony server:start

Si vous allez sur l’URL localhost:8000 sur votre navigateur préféré, votre page de présentation de projet apparait bien !

Vous pouvez à présent développer votre projet !

Création de votre page

Avant toute chose, il est nécessaire de comprendre que la création d’une page est un ensemble de deux éléments :

  • Un Controller
  • Une Route

Qu’est-ce qu’un controller ?

Un controller (ou contrôler en français) est une fonction PHP vous permettant de créer des pages que vous écrirez. Il génère un objet Response contenant vos données qu’il soit HTML, JSON ou binaire (images, .pdf, …).

Qu’est-ce qu’une route ?

Une route est tout simplement l’URL de vos différentes pages et va vous permettre de pointer vers un contrôleur et ainsi pouvoir accéder à votre page.

Vous allez créer une page accessible sur l’URL localhost:8000/nombre/random.

Création de votre controller

Dans votre projet, créez un nouveau fichier NombreRandom.php dans /src/Controller.

Et recopiez le code suivant dans celui-ci :

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

use Symfony\Component\HttpFoundation\Response;

class NombreRandom
{
public function number(): Response
{
$number = random_int(0, 100);

return new Response(
'<html><body>nombre magique: '.$number.'</body></html>'
);
}
}

Vous remarquez trois parties concrètes dans le code ci-dessus :

  • namespace, il doit être le premier élément déclaré dans une page PHP en Symfony. Il permet d’organiser le code logiquement, évite les conflits de noms et permet le chargement automatique de votre projet.
    Sans cela, vous seriez obligé de tout effectuer manuellement.
  • use, il indique à Symfony quels éléments utiliser lorsque la page est appelée et chargée.
  • classes et fonctions, c’est le cœur de votre page. Ici vous avez une fonction number permettant de générer un nombre entier aléatoire entre 0 et 100 et qui l’affichera dans le body de votre page.

Votre page dispose à présent de son controller mais comment y accéder ?

Création de votre route

Dans votre code existant, vous allez devoir ajouter deux lignes de code :

use Symfony\Component\Routing\Attribute\Route;
----
#[Route('/nombre/random')]
  • use Symfony\Component\Routing\Attribute\Route;
    indique ici à Symfony d’utiliser le composant de Routage avec l’attribut Route pour vous permettre de créer une route.
  • #[Route('/nombre/random')],
    permet de définir notre route et donc l’URL pour accéder à notre controller.

Votre code complet doit être :

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

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class NombreRandom
{
#[Route('/nombre/random')]
public function number(): Response
{
$number = random_int(0, 100);

return new Response(
'<html><body>nombre magique: '.$number.'</body></html>'
);
}
}

Essaie de votre application

Si vous allez sur l’URL http://localhost:8000, vous devriez avoir la page de présentation de votre projet Symfony.

Cependant si vous vous rendez sur l’URL http://localhost:8000/nombre/random, vous devriez voir apparaitre votre page avec votre nombre aléatoire.

Remarquez que si vous actualisez votre page, la fonction sera appelée de nouveau et ainsi un nouveau nombre sera généré.

Conclusion

Vous avez réussi à créer votre première application Symfony.
Félicitations !

Vous avez découvert les concepts de base de Symfony avec le routage de pages. Vous allez pouvoir créer de fantastiques projets.

N’hésitez surtout pas à consulter les documentations officielles qui sont très qualitatives et nombreuses afin de pouvoir mener à bien vos projets.

--

--

Korzeremi02
0 Followers

I am a French epicurean, passionate about racing cars, programming, technologies, and many other things, while also being a full-stack web developer.