Ethan Morisset – Développeur Fullstack chez NRJ & EFREI Paris

Découverte de Symfony

Symfony est un framework PHP open source qui facilite le développement d’applications web modernes, robustes et maintenables. Il est largement utilisé dans l’industrie pour créer des sites web et des applications complexes grâce à son architecture modulaire et son écosystème riche.


Pourquoi choisir Symfony ?

Symfony offre plusieurs avantages qui en font un choix privilégié parmi les développeurs PHP :


Les bases de Symfony

Symfony repose sur le concept de MVC (Modèle-Vue-Contrôleur), qui permet de séparer la logique métier, la gestion des données et la présentation.


Installation et configuration

Pour commencer avec Symfony, vous devez installer l’outil en ligne de commande Symfony CLI. Ensuite, créez un nouveau projet avec la commande :

symfony new my_project --full

Cette commande crée un projet Symfony complet avec toutes les fonctionnalités de base.


Exemple simple : Créer une page d’accueil

Dans Symfony, une route correspond à une URL accessible. Pour créer une page d’accueil, vous devez définir une route dans un contrôleur :

// src/Controller/HomeController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController
{
    #[Route('/', name: 'home')]
    public function index(): Response
    {
        return $this->render('home/index.html.twig', [
            'message' => 'Bienvenue sur mon site Symfony !',
        ]);
    }
}

Puis créez un template Twig :

{# templates/home/index.html.twig #}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Accueil</title>
</head>
<body>
    <h1>{{ message }}</h1>
</body>
</html>

Gestion des données avec Doctrine

Symfony utilise Doctrine comme ORM pour gérer la base de données. Vous pouvez définir des entités PHP qui représentent vos tables.

// src/Entity/Article.php
namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
class Article
{
    #[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
    private $id;

    #[ORM\Column(type: 'string', length: 255)]
    private $title;

    #[ORM\Column(type: 'text')]
    private $content;

    // getters et setters...
}

Ensuite, créez et mettez à jour la base avec Doctrine :

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

Utilisation avancée : Formulaires et validation

Symfony facilite la création et la gestion des formulaires :

// src/Form/ArticleType.php
namespace App\Form;

use App\Entity\Article;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ArticleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', TextType::class)
            ->add('content', TextareaType::class);
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Article::class,
        ]);
    }
}

Vous pouvez ensuite créer un formulaire dans un contrôleur et gérer la validation automatiquement.


Conclusion

Symfony est un framework mature, stable et performant qui s’adapte aussi bien aux petits projets qu’aux applications d’entreprise complexes. Sa communauté active et sa documentation riche en font un excellent choix pour tout développeur PHP souhaitant construire des applications robustes et évolutives.