
Michaël Marinetti

Eric Dolou
Pour la version 1.4.4 de PrestaShop, Eric Dolou (Brocéliande sur le forum) et Michaël Marinetti (developpeur à PrestaShop) ont expérimenté une collaboration spontanée autour de la nouvelle fonctionnalité « One Click Upgrade » (OCU).
Ce travail en commun s’est appuyé sur un dépôt Subversion, créé spécialement pour l’occasion, et plusieurs réunions informelles (IRC, Skype ou questions/réponses par mails).
A partir de la version 1.4.4, la fonction OCU permet une mise à jour vers une version supérieure en un clic !

Au-delà de la mise à jour, cette fonctionnalité effectue au préalable un backup complet du site (fichiers et base de données) afin de pouvoir revenir en arrière en un seul clic. Il s’agit de la fonctionnalité Rollback.
Afin de rendre cette manipulation possible, des classes du coeur ont été modifiées afin par exemple de pouvoir utiliser la classe Backup.php pour utiliser un autre dossier que celui par défaut. La classe Upgrader() fait son apparition pour connaître l’existence d’une version plus récente et permet de la télécharger dans un dossier.
De nombreuses méthodes ont été implémentées dans la classe AdminUpgrade, dont certaines seront déplacées vers des classes natives. Par exemple, nous avons parlé d’une classe Restore.
Celles-ci seront donc, à terme, à la disposition de tous et pourront être utilisées dans leurs modules.
Cette première version est articulée autour des fonctions principales suivantes :
- download, unzip et removeSamples : télécharge la dernière version stable disponible, l’extrait, et supprime les images d’exemples.
- backupFiles : Archivage complet d’un dossier et de ses sous dossiers (eg : arborescence du site… ). Des options sont disponibles pour exclure certain dossier, comme par exemple les images, afin d’alléger la sauvegarde.
- backupDb : Sauvegarde complète de la base de données.
- upgradeFiles : Ecrase les anciens fichiers du cœur pour les remplacer par les nouveaux.
- upgradeDb : Met à jour la base de données en utilisant les mêmes méthodes que l’installeur standard.
- rollback : permet d’effectuer une restauration des fichiers et de la base de données si l’utilisateur n’est pas satisfait de la mise à jour (problème de thème difficile à résoudre par exemple). Lors de la restauration des fichiers, un nettoyage de l’arborescence ( _cleanUp() ) est effectué pour ne pas laisser de nouveaux fichiers dans une ancienne version.
De nombreuses améliorations sont prévues pour la suite : une version « standalone » (pour mettre à jour en un seul clic à partir d’une version 1.3.0.x ), un mode « unstable » pour utiliser le dépôt subversion officiel de PrestaShop, et surement d’autres …
En conclusion, cette collaboration nous a été à tous deux très profitable, et peut-être que cela encouragera d’autres personnes à apporter leur contributions au cÅ“ur de PrestaShop.
co-écrit par Eric Dolou et Michaël Marinetti

