[RESOLU] PHP5.x, vers 7.x : MySQL, MySQLi, PDO, Procédural ... ? Comment ça se passe ?

Eléphant du PHP | 129 Messages

12 janv. 2019, 02:10

Hello,

Bonne année à tous :)

A ce jour, mes divers scripts sont en PHP procédural (d'après ce que j’ai pu comprendre), et passent sur 5.x .

Je vais être confronté sous pneu comme beaucoup, à devoir passer en PHP7.x car de moins en moins d'hébergeur vont maintenir PHP5.x (ou sous forme payante).

Mais voilà, j'ai fouillé pas mal sur le net, je ne trouve rien de vraiment précis et surtout concret.

Dans un premier temps, je n'arrive pas à visualiser de manière concrète le "orienté objet" (on trouve soit des exemples mais qui n'expliquent pas, soit des pavés imbouffables d'explications plus compliquées que l'interrogation).

Ensuite, qu'implique exactement le passage à PHP 7 ?
Tout passer à MySQLi ? à PDO ?
Qu'est-ce qui ne sera plus compatible ?
Ou en gros , ai-je un peu espoir qu'une bonne partie de mon code actuel tournera où faut-il tout refaire ?

Mes scripts sont basés très essentiellement sur des SELECT dans des bases de données MySQL, des whiles pour récupérer les résultats, des if , des substr, etc etc pour faire différentes opérations , des UPDATE, des INSERT, je dirais des trucs assez basiques.
Mais si par exemple pour le moindre truc faut changer la syntaxe (genre au lieu de $variable = "truc".$autrevariable , que ce soit $variable->('truc').$autrevariable , je dis ca au pif , je connais quedale mais j'ai déjà vu des codes dans ce genre , avec la flèche là), GLOUPS, tout est à réapprendre et à refaire :(

En gros, je suis dans le flou total :(
Merci pour vos réponses (simples SVP lol )
Un Couin vaut mieux que Deux tu couineras :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7981 Messages

12 janv. 2019, 03:04

Le changement le plus important dans PHP7 c'est effectivement la suppression des fonctions mysql_*
Il faut donc modifier ton code pour utiliser les fonctions mysqli_* ou PDO.
Il y a un tuto ici : faq-tutoriels/passer-mysql-mysqli-pdo-t276282.html

Pas besoin de tout passer en programmation orientée objet tu peux tout laisser en PHP procédural.

Il y a quelques autres changement mais normalement mineures, le plus simple c'est que tu testes ton site sur PHP7, les messages d'erreur avec l'aide de la doc officielle sont en général très explicites.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 129 Messages

12 janv. 2019, 03:52

Hello,

Merci pour ta réponse :)
Le dernier paragraphe ( La majorité des méthodes MySQL ont une méthode procédurale équivalente en MySQLi ) est plutôt rassurant je pense.

Pour tout ce qui est autre que les requêtes SQL, je veux dire, donc ce qui concerne des if , scandir, substr, str_replace etc etc, pas besoin de refaire ? Ou là aussi il y aura du depreciated ?

Merci :)
Un Couin vaut mieux que Deux tu couineras :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7981 Messages

12 janv. 2019, 03:54

Pour tout ce qui est autre que les requêtes SQL, je veux dire, donc ce qui concerne des if , scandir, substr, str_replace etc etc, pas besoin de refaire ? Ou là aussi il y aura du depreciated ?
Il y en aura mais normalement assez peu, ou du très simple à modifier (un coup d'oeil sur la doc de la fonction concernée et il y a un lien ou un encadré avec la solution de remplacement)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 129 Messages

12 janv. 2019, 05:00

Bon il n'y a plus qu'à plancher sur le sujet lol
Je vais avoir du couin sur la planche lol

Et aussi, j'y pense, mais j'imagine que ce n'est pas rétrocompatible ?
Je veux dire par là, que si je commence à modifier par page pour passer en PHP7, et que le reste du site est encore en 5, les nouvelles pages ne passeront plus tant que j'aurais pas migré la version php de l’hébergeur (car pour le moment on peut encore choisir) en 7 ?
Un Couin vaut mieux que Deux tu couineras :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7981 Messages

12 janv. 2019, 11:55

Si si, c'est rétrocompatible, un site qui fonctionne en PHP7 fonctionnera sur un hébergement en PHP5 dans 99.9% des cas.


Les 0.1% restant c'est uniquement si tu utilises l'une des rares nouvelles fonctions qui n'auraient été ajoutées que dans PHP7, mais très honnêtement c'est très très peu probable surtout sur de la modification d'un site existant.
Voilà le seul exemple que j'ai en tête d'une nouvelle fonction apportée par PHP7 : http://php.net/preg_replace_callback_array
Comme tu peux le voir, c'est indiqué dans la doc sous le nom de la fonction qu'elle est uniquement dispo depuis PHP7.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 129 Messages

13 janv. 2019, 02:38

Hello,

Merci pour tes réponses :)
Je ne crois pas avoir besoin de la fonction à laquelle tu fais référence donc ça devrait aller lol

Bon OuiK !
Couin
Un Couin vaut mieux que Deux tu couineras :D

Eléphant du PHP | 129 Messages

06 févr. 2019, 00:01

Hello,

Juste un petit post pour donner un retour sur la migration, c'est okay , le site est maintenant compatible PHP 7 :)

Merci @rthur pour ton aide !
Un Couin vaut mieux que Deux tu couineras :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7981 Messages

06 févr. 2019, 00:02

Top ! :-D
Quand tout le reste a échoué, lisez le mode d'emploi...