Bonjour à tous,
Comme promis, je me lance dans une série d’articles (un par mois ou tous les deux mois, selon mon rythme) pour vous parler de la refonte de Scribbook. Considérez ça comme un "dev blog" : un journal de bord technique, mais écrit de manière à rester compréhensible, même si vous n’êtes pas un expert en développement. Aujourd’hui, voici le premier épisode, sobrement intitulé Phénix, parce qu’on va faire renaître ce projet de ses cendres avec une bonne dose de modernité. Bon, j’exagère un peu... Scribbook n’est absolument pas mort, mais c’est toujours sympa d’utiliser une belle image, non ? :) Allons-y !
Actuellement, Scribbook tourne sur PHP 7.2. Si vous ne savez pas ce que ça signifie, imaginez une vieille voiture fiable mais qui commence à tousser sur l’autoroute : elle fait le job, mais elle n’est plus adaptée aux standards actuels. PHP 7.2 est officiellement obsolète depuis fin 2020, ce qui veut dire plus de mises à jour ni de support. Continuer avec, c’est comme construire une maison sur des fondations fissurées – ça tient, mais jusqu’à quand ?
Pour repartir sur de bonnes bases, j’ai installé une version récente de XAMPP (un outil qui regroupe un serveur local avec PHP, MySQL, etc.) équipée de PHP 8.2. C’est une version bien plus performante et sécurisée, qui va me permettre de faire évoluer Scribbook sans trembler à chaque nouvelle fonctionnalité.
Une fois XAMPP en place, j’ai recréé le schéma de la base de données actuelle dans ce nouvel environnement. Pour les non-initiés, une base de données, c’est comme une immense bibliothèque où sont rangées toutes les informations du site (utilisateurs, contenus, etc.). La mienne devait être remise à neuf pour coller aux exigences de PHP 8.2.
Ensuite, j’ai attaqué le cœur du sujet : le code. Scribbook repose sur Yii2, un framework PHP que j’utilise depuis ses débuts. Un framework, c’est un peu comme un kit de construction : il fournit des outils et une structure pour bâtir une application plus vite et plus proprement. J’ai donc installé une version à jour de Yii2, toute vide, comme une page blanche prête à accueillir le projet.
À l’heure actuelle, mon code est un mélange un peu chaotique : Yii2 gère à la fois la logique (le "back-end", ce qui se passe en coulisses) et l’affichage (le "front-end", ce que vous voyez à l’écran), avec du HTML et des bibliothèques JavaScript en bonus. Ça fonctionne, mais c’est lourd et pas très flexible.
Mon objectif ? Transformer ce vieux code Yii2 en une API. Une API, c’est une sorte de serveur qui répond aux demandes d’une application, sans se soucier de l’affichage. Par exemple, une appli mobile pourrait lui demander "donne-moi les données de l’utilisateur X", et l’API s’exécute. Pour ça, je vais extraire tout ce qui concerne l’affichage du vieux projet et ne garder que la logique dans cette nouvelle version Yii2.
En parallèle, je prépare un tout nouveau front-end avec Vue.js 3, une technologie moderne pour créer des interfaces dynamiques et rapides. Cette semaine, je vais démarrer un projet vide sous Vue.js 3 et commencer à connecter les deux parties. L’idée, c’est d’avoir un site plus fluide et prêt à évoluer, que ce soit sur ordinateur ou sur mobile.
La prochaine étape, c’est de recréer une fonctionnalité toute simple en apparence : le login. Vous savez, la petite page où vous entrez votre identifiant et votre mot de passe. Sauf que derrière cette simplicité se cache un vrai casse-tête technique !
Il faut repenser toute la chaîne : comment l’utilisateur se connecte, comment on vérifie ses informations, comment on le garde connecté (ou pas), et comment on gère la déconnexion. Ça implique de jongler avec la nouvelle technologie de l’API, les sessions, les tokens de sécurité… Bref, c’est un mini-projet dans le projet. Quand j’aurai une page de connexion qui marche dans cette nouvelle mouture, je pourrai sabrer le champagne – ou au moins me taper dans le dos. Oui, ça peut sembler trivial, mais c’est un énorme pas en avant !
Pour ceux qui veulent une vue plus "pro" de l’avancement, voici un extrait de mon suivi sur Jira, mon outil de gestion de projet. Ça donne un aperçu des tâches en cours et de ce qui m’attend.
Merci d’avoir lu ce premier épisode. J’espère que ça vous donne une idée du chantier en cours et de l’ambition derrière cette refonte. Rendez-vous dans un mois (ou deux) pour le prochain article, où je vous raconterai comment j’ai survécu au login – ou pas ! D’ici là, n’hésitez pas à me dire ce que vous en pensez.
À bientôt,