Lors la dernière Symfony Live Paris, Xavier Lacot, un des rares speakers français, animait une conférence intitulée « Symfony2 components to the rescue of your PHP projects », littéralement « Des composants Symfony2 pour sauver vos projets PHP »
Cette conférence s’est révélée très intéressante, du fait qu’elle présente le projet Symfony2 sous un angle différent de la vision Framwork.
En effet, un des grands changements apporté par Symfony2 est le fait qu’il n’est pas uniquement un full-stack Framework. Il est constitué de plusieurs composants qui peuvent maintenant être utilisés indépendamment les uns des autres.
Cette nouvelle modularité permet une intégration au fur et à mesure des nouveaux concepts apportés par PHP 5.3 et Symfony2 dans des projets anciens développés sans Framework.
Xavier Lacot conseille de faire une migration progressive vers les nouveaux concepts et outils de développement.
Pour ce faire, il recommande de réaliser les nouveaux développements en utilisant les concepts récents, notamment l’utilisation des composants Symfony2.
Ensuite, lors de la maintenance d’anciens modules, intégrer les nouveaux concepts avec les best practices en vigueur.
Pour démontrer son propos, il a présenté 3 composants Symfony2 à utiliser pour débuter :
- ClassLoader
- DependencyInjection
- HttpFoundation
ClassLoader est un composant permettant de charger « automagiquement » les classes lorsqu’elles sont appelées dans le code à partir du moment que la définition des classes suit la convention de nommage PSR-0.
DependencyInjection est un composant fournissant des outils permettant de définir facilement des objets et des classes de manière standardisée et réduire ainsi les risques de compatibilité entre différentes versions d’un même projet.
HttpFoundation est sûrement l’un des composants les plus utiles lors du développement de site web. Ce dernier fournit tous les outils et les classes permettant de travailler avec les HTTP Request, HTTP Response, Session…
Un exemple d’intégration de HttpFoundation :
<?php use Symfony\Compenent\HttpFoundation\Request; $request = Request::createFromGlobals(); // createFromGlobals Analyse les variables SuperGlobals PHP // $_SERVER, $_POST, $_GET et peuple l'objet Request $page = $request->query->get('page','404'); // On recupère la variable $_GET['page'] // '404' est la valeur si $_GET['page'] est vide
Ce petit exemple nous a montré un début de ce qui est possible de faire avec les composants Symfony pour faire évoluer son site web depuis une architecture ancienne vers une solution plus moderne est structurée et cela de manière simple et progressive.
Les différents composants décrits dans cet article se trouvent aux adresses suivantes :
La liste complète des composants Symfony disponibles se trouve à cette adresse : http://symfony.com/components
Les slides de la présentation sont, quant à eux, disponibles à l’adresse suivante : https://joind.in/talk/view/6603