IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

conseil de méthodologie pour mise à jour d'un vieux site


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut conseil de méthodologie pour mise à jour d'un vieux site
    Bonjour,

    Je reprends un vieux site html/php/MySQL. Je n'ose même pas mettre les versions.

    Il faut que je fasse une MAJ de PHP sur le site de l'hébergeur mais du coup les erreurs tombent suite à des commandes "deprecated".

    Est-ce qu'il faut que je me tape la lecture de tout le code de tous les modules pour traquer les commandes obsolètes ou est-ce qu'il existe une méthode et un outil me permettant d'automatiser un peu ce travail ?

    Bon, je sais que ce problème n'est pas propre à PHP mais dans mon cas c'esr PHP qui coince et je n'ai pas vu de meilleur forum.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 394
    Points : 15 755
    Points
    15 755
    Par défaut
    est ce que c'est un site qui pourrait être amené à évoluer ? ou alors il va rester tel quel et s'il y a un modification à faire, cela va passer par une refonte complète ?

    à voir aussi quels sont les utilisateurs ciblés. si c'est un site tout public et que c'est une très vieux site, il manque peut être les effets responsifs pour gérer les petits écrans.

  3. #3
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 358
    Points : 734
    Points
    734
    Par défaut
    Bonjour,

    Les alertes de type "deprecated" correspondent à des fonctionnalités qui sont devenus obsolètes et qui ne devraient plus être utilisées pour de nouveaux projets.
    Néanmoins, ces fonctionnalités ne sont pas supprimées du langage (les fonctionnalités dépréciées sont généralement supprimées lors de la prochaine mise à jour majeure de PHP).

    Idéalement, il faudrait donc modifier le code pour corriger les alertes deprecated afin de ne pas avoir à s'en soucier lors de la prochaine maj, mais tu peux aussi pour l'instant les ignorer puisque celles-ci ne changeront pas le fonctionnement actuel de ton code.

    Tu risques par contre de rencontrer des incompatibilités entre les différentes versions de PHP, tu peux consulter les guides de migration de chaque version sur la doc pour plus d'infos : https://www.php.net/manual/fr/migration82.php

    Il existe notamment le projet rectorphp/rector qui permet d'automatiser en partie la mise à jour du code en fonction de la version PHP.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ces deux réponses.

    En effet, le site n'est pas responsive mais je n'envisageais pas qu'il le devienne : je me suis juste engagé pour des petits ajouts ou des MAJ de routine.
    Je ne pensais pas retoucher le code.
    D'ailleurs c'est ici : https://www.falconoras.fr/

    Par contre, tôt ou tard l'hébergeur (OVH) ne supportera plus cette version de PHP donc je ne vais pas pouvoir ignorer.

    Je vais voir avec le projet rectorphp. Faut pas trainer : je lis que "Rector now supports upgrades from PHP 5.3 to 8.2" et je suis sur du PHP 5.4 !

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 791
    Points : 3 058
    Points
    3 058
    Par défaut
    J'ai déjà fait de multiples mises à jour et il n'existe, à ma connaissance, aucun outil d'analyse pouvant prédire les problèmes qui surviendront.

    Rector est un outil absolument génial, je l'adore et je l'utilise régulièrement, pas forcément pour upgrader mais aussi pour récrire du code que je viens de faire car Rector me dira alors "tiens tu as écrit comme ça alors qu'on peut faire comme ceci". Dans cette utilisation régulière, Rector est en fait mon coach, mon relecteur. Un must à utiliser.

    Pour la migration, si tu n'as pas de tests unitaires, tu vas donc migrer à l'aveugle : tu vas changer le code source (à la main ou via Rector) sans même savoir si le code fonctionnait avant et s'il fonctionne après.

    Si tu utilises des dépendances tierces, peut-être celles-ci n'existent plus dans la version cible de php voire fonctionnent autrement (code refactoring).

    Ceci pour dire que la migration est toujours un challenge imprévisible lorsque le code legacy est très ancien.

    Bonne chance.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    J'ai déjà eu à faire un upgrade de version de php sur des sites, je suis tombé sur des curiosités comme des fonctions natives dont l'ordre des paramètres est inversé d'une version à l'autre.
    J'ai tout fait à la mano en reprenant le code fichier par fichier et à chaque nouvelle découverte en faisant des replacement de code en masse.
    Avec un peu de rigueur et de patience ça se fait sans trop de soucis...

  7. #7
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 791
    Points : 3 058
    Points
    3 058
    Par défaut
    Récemment j'ai migré une application legacy de php 7.1 vers 7.4 (la migration vers php 8 sera faite un peu plus tard) et de mysql 5 vers mysql 8.

    Je tais les problèmes php, le gars avait écrit des SQL type select... from... sans utilisation de la clause order by.

    Et boum, l'ordre des records est différent. Dans ce cas particulier, il avait hardcodé le fait que le premier record concernait les hommes, le second les femmes (légende d'un graphique). Sous mysql 5,c'était ok. Sous mysql 8,l'ordre des records retourne d'abord les femmes... Et boum, ses graphiques étaient KO du fait que la légende était hardcodé. Son graphique affichait les données des femmes mais avec le label des hommes et vice-versa.

    Il m'était impossible de détecter cela avant de tomber sur cette bizarrerie. Il m'a de fallut reprendre chacun de ses queries pour forcer le order by. Il y en avait plus de 100.

    Ceci pour dire que l'upgrade peut réserver des drôles de surprise. On croit que ce sera facile mais c'est sans compter le code d'alors.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Un petit search and replace récursif (avec sed par exemple) peut aider pour remplacer en masse des bouts de code préalablement identifiés comme problématiques. Et il faudra tester l'application en examinant les logs au fur et à mesure, car il est possible que beaucoup de warnings passent inaperçues.

    J'ai jeté un coup d'oeil très rapide au site. A moins qu'il n'y ait des fonctionnalités très particulières je suggérerais plutôt de migrer vers une plateforme de type Wordpress ou Dotclear. L'idée est donc de laisser tomber le code legacy mais récupérer le contenu des articles. En fonction de la plateforme choisie, il peut y avoir des plugins intéressants pour votre activité.
    A mon avis, ce sera une solution plus pérenne que migrer le code PHP, car de toute façon il faudra répéter l'opération dans un futur plus ou moins lointain.

    Je ne suis pas sûre qu'il y ait de la valeur ajoutée à faire cette migration comme vous l'envisagez. De la valeur éducative sûrement, mais ce n'est pas un investissement judicieux du temps libre à mon avis. Sauf si vous voulez rajouter une ligne dans votre CV.

  9. #9
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 424
    Points : 878
    Points
    878
    Par défaut
    bonjour,

    es-tu sûr que c'est un site internet crée à partir de rien ou bien est-ce un site crée à partir d'un CMS (joomla, wordress, typo..) ou encore un site crée à partir d'un framework ou pire un site crée à partir d'un générateur (PHPRunner par exemple).
    Ya 4 cas possibles à ma connaissance, donc faudrait savoir. Ta direction ne peut-elle pas te donner une doc technique (cahier des charges), même vieillotte ?

    à mon avis, c'est la base primordiale à savoir avant de creuse fichier par fichier,page par page, ligne par ligne. En connaissant la source de création (l'un des 4 cas) ça va t'orienter vers des pistes sinon une idée du travail à faire...

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Rien à voir avec un CMS et je ne pense pas qu'un générateur de code ait été utilisé car il en resterait des traces.
    C'est un site qui a été fait "from scratch" pour un ami par une développeuse freelance qui a souhaité abandonner l'affaire par la suite.
    Je manque d'expérience mais ça me semble propre - si ce n'est que ça n'est pas documenté.

    Ce qui me trouble le plus, c'est que certains textes (c'est un site de littérature) sont proposés en lecture libre. Ils peuvent alors être téléchargés en pdf ou bien lus à l'écran. Dans ce dernier cas, les textes sont repris et mis en forme avec du html. C'est parfois assez complexe comme celui-ci https://www.falconoras.fr/index.php?story_id=2 : si vous vous intéressez aux carrés magiques.
    Clairement, chaque texte a été inséré et mis en forme à la main. C'est du boulot !

    C'est certain : un Wordpress serait plus facile à maintenir. Et je choisirais un thème responsive.
    Par contre, je trouve le site tel qu'il est très fluide et visuellement assez élégant.
    Donc j'hésite encore.

    Merci pour vos contributions en tout cas.

  11. #11
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 424
    Points : 878
    Points
    878
    Par défaut
    Par contre, je trouve le site tel qu'il est très fluide et visuellement assez élégant.
    il semble être fait dans le respect du CSS et surtout il n'a pas de superflu js ajax comme de nos jours. pas de pub, pas de bannière, pas de tracker oppressant. La bonne époque des sites internet rapide, fluide, agréable.
    Si l'arrière partie en PHP est aussi propre que le front, ça devrait être pas trop difficile.

    Mais prenez garde au vieux jquery à mettre à jour, ça pourrait impacter des changements indésirables.

    Pour savoir si les contenus sont rédigés/stockés/mis en forme à la main (un sacré travail en effet au vu de https://www.falconoras.fr/index.php?story_id=2 ), il faudra regarder dans la BDD pour voir comment ils sont stockés dans le champs mysql.
    Peut-être aussi, que la partie backend qui permet d'éditer les contenus possède un éditeur web html facilitant le travail comme TinyMCE . Faudra fouiller votre dossier /js ou /javascript pour le découvrir...

Discussions similaires

  1. [AC-2010] Conseil pour Mise à jour de table en VBA
    Par shakapouet dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/07/2012, 17h42
  2. [Débutant] Petit conseil pour mise à jour d'une base de données
    Par Nixeus dans le forum C#
    Réponses: 3
    Dernier message: 01/12/2011, 11h56
  3. Créer .bat pour mise à jour de mon antivirus
    Par ardamus dans le forum Windows
    Réponses: 1
    Dernier message: 17/02/2006, 11h41
  4. [VB6] Code pour Mise à jour automatique
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 10/02/2006, 18h05
  5. Utilisation de CASCADE pour mise à jour
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/08/2004, 08h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo