Bonjour à tous et merci d’avoir cliqué sur cet article. 🙂
Il y a un débat qui fait rage depuis longtemps dans la communauté des développeurs, à savoir : PHP vs Javascript.
Passons outre la pertinence de tels débats (chaque techno ayant ses avantages et ses inconvénients), aujourd’hui j’ai décidé de réaliser l’hérésie complète. 😛
Nous allons voir comment intégrer React (donc une librairie Javascript Front) à l’intérieur d’un projet Symfony (Framework back en PHP). 😀
“C’est pas un peu contre-intuitif ton truc là ?”
Pas forcément et vous allez justement voir pourquoi.
Là encore comme pour le débat initial, tout est une question de goûts, de choix et de pertinence quant aux besoins d’un projet.
Pour ma part j’ai été confronté à un dilemme en voulant créer un nouveau micro-SAAS :
Comme vous le savez sûrement, depuis quelques versions déjà, Symfony utilise Webpack ainsi que npm ou yarn pour gérer la partie front-end de ses applications. Cela va donc nous faciliter la tâche puisque React utilise la même chose pour initialiser ses projets et gérer ses dépendances.
On va donc initialiser un projet Symfony comme d’habitude puis une fois fait installer directement les dépendances de React dans le même projet. Pour cela il existe une documentation officielle vous expliquant comment ajouter React en tant que partie d’une page existante.
Lorsque vous avez suivi ces étapes on peut considérer que c’est ok, React est installé et prêt dans votre projet.
“Oui mais moi je vois toujours du twig là dans mon Symfony donc c’est pas fini.”
Exactement, il manque maintenant la connexion entre Symfony et React. 😛
Pour cela il va d’abord falloir éditer le fichier tsconfig.json et y ajouter :
Cela va éviter quelques erreurs de build dues au contexte dans lequel va s’exécuter React.
Il faut également éditer le fichier webpack.config.js et y dé-commenter les lignes suivantes :
Voilà ! 🎉
“Quoi ? C’est tout ? React fonctionne là ?”
Et oui ! 😀 Comment tester ça ? En éditant votre principal fichier twig de cette manière :
Puis dans les assets de votre projet Symfony en ajoutant un fichier JS comme à votre habitude qui contiendra :
Maintenant vous pouvez rendre n’importe quel composant React dans Home et vous le verrez apparaître sur la page menant à votre Twig.
Je vous ai fait un schéma pour récapituler comment tout cela s’articule exactement :
C’est tout, plutôt simple non ? 😛
Comme je l’ai dit plus tôt, j’ai réalisé cette combinaison de stack pour mes besoins personnels. Mes avantages ne seront donc pas les mêmes pour tout le monde mais ici il était question de :
@mui/material
par exemple.Les inconvénients sont :
Pour conclure cet article, nous pouvons réaliser que beaucoup de choses sont toujours possibles dans le développement, même avec des technologies très différentes et venant d’univers d’habitude opposés.
N’oubliez pas que des énormes plateformes comme Facebook ou Google tournent avec plusieurs langages et plusieurs connexions entre les uns et les autres. Parfois il ne faut pas s’enfermer dans un écosystème alors que l’on pourrait tirer parti d’outils beaucoup plus efficaces en piochant à gauche et à droite.
C’est surtout ce que j’ai voulu montrer ici dans mon expérimentation. 🙂
Sur ce, je vais retourner faire du TypescriPHP et je vous dis à bientôt ! 😛