Page 1 sur 1
PHP 6, compatibilité, dois je commencer à m'inquieter ?
Posté : 17 juin 2009, 15:32
par supercanard
Bonjour,
Bon ben voilà j'imagine que les hébergeurs ne vont pas se jeter dessus à sa sortie mais on ne va pas pouvoir reculer le moment fatidique.
Pour des sites conséquents et déjà en place depuis quelques années ça risque de donner du boulot.
Et ça m'inquiète un peu :
J'ai intégré une boite de vente en ligne depuis peu et je suis presque seul au commande du site, ou en tous cas de plus en plus. Le site est en constante évolution et pour l'instant j'essaye de respecter la manière dont il à été développé et de la suivre.
Mais les points noirs sont :
- Pas de PDO ( plutôt logique je crois qu'il à été développé avant sa sortie )
- Codé avec les magic quotes ON, hélas, pour une raison historique on va dire
- Le moteur de template tourne avec les POSIX
Donc je ne sais pas si je dois commencer à m'inquiéter tout de suite ou si il me reste le temps de voir venir la chose.
Ma première crainte se passe surtout au niveau de PDO, je ne suis pas sur d'avoir bien compris : Il me semblait que PDO aller devenir obligatoire ? Ça veut bien dire que les fonctions mysql classiques ne seront plus pris en charge ?
Posté : 17 juin 2009, 16:22
par Berzemus
Vu le rythme de passage de php4 vers php5, je pense pouvoir dire que tu es tranquille.. d'autant qu'il sans doute possible de faire cohabiter plusieurs versions de php, en utilisant les extensions php5 et php6, par exemple.
Re: PHP 6, compatibilité, dois je commencer à m'inquieter ?
Posté : 17 juin 2009, 17:48
par AB
Il me semblait que PDO aller devenir obligatoire ? Ça veut bien dire que les fonctions mysql classiques ne seront plus pris en charge ?
Je n'ai pas eu la même lecture (mais à vérifier). PDO sera le standard pas défaut et les autres fonctions classiques mysql seront prises en charge à condition que l'on active l'option idoine sur le serveur... (en fait c'est pour inciter les nouveaux dev à utiliser PDO). Il est probable que quasiment tous les hébergeurs activent cette option pour raisons de compatibilité pour de très très nombreuses années.
Posté : 17 juin 2009, 17:53
par supercanard
Ouf

Posté : 17 juin 2009, 18:20
par AB
Renseignes toi pour être plus sûr mais concernant la compatibilité mysql, une autre politique serait suicidaire et pas dans le style des penseurs du langage.
Par contre pour les magic_quote en PHP6, j'ai cru comprendre qu'il n'y aurait plus la config serveur disponible en option... mais bon les config php 5 perdureront encore longtemps (il existe encore moult script en php4 ...) alors même si tu ne veux pas modifier ton script - c'était quand même pas beau de développer avec magic_quote activé - tu est tranquille pour au moins environ une dizaine d'année (au pifomètre) ... ou tout au moins bien plus que le temps d'utilisation standard d'un logiciel.
Posté : 17 juin 2009, 19:26
par Sékiltoyai
Au fur et à mesure, commence à faire évoluer ce qui bloque pour le passage en php6. Donc entre autres les magic quotes.
Au bout d'un moment (dans plusieurs années) on te demandera peut être de refondre le site, et là tu pourras défendre un développement from scratch (ou sur un framework), et sur php6, qui sera déjà installé (ça rassure, moins il y a de changements à faire en même temps, mieux c'est perçu).
Posté : 17 juin 2009, 21:20
par Nagol
les magic quotes ca me fera toujours hurler, ca fait quand meme un bail que tout le monde dit et repete que c'est mal, un site qui n'a pas été mis à jour ces 7 dernières années ok, un site qui a reçu les soins d'un codeur depuis ne devrait pas être sujet à un soucis de magic quote, ou de register globals. quand aux raisons historiques... elles sont uniquement la pour servir d'excuse, très franchement, un décideur qui ne prend pas en compte ce genre de choses, ou un codeur qui n'ose pas taper du poing pour avertir de ce genre de choses, ce sont des gens qui ne devraient pas percevoir un salaire pour le boulot qu'ils font.
Posté : 17 juin 2009, 23:31
par supercanard
Ben a l'origine le site était hébergé chez ovh en mutualisé ou les magic quote étaient ON avec impossibilité de les désactiver. Aujourd'hui il est chez un autre hébergeur ou le problème ne se pose plus et va passer en mutualisé.
Ta réponse est légèrement excessive, le développeur du site avec qui j'ai eu l'occasion de parler est loin de ne pas mériter son salaire, et aujourd'hui tout reprendre prendrait un temps fou et ce n'est pas envisageable étant donné toutes les évolutions en cours et a venir.
Ça va se faire petit à petit.
Posté : 18 juin 2009, 00:03
par Nagol
Ben a l'origine le site était hébergé chez ovh en mutualisé ou les magic quote étaient ON avec impossibilité de les désactiver. Aujourd'hui il est chez un autre hébergeur ou le problème ne se pose plus et va passer en mutualisé.
Ta réponse est légèrement excessive, le développeur du site avec qui j'ai eu l'occasion de parler est loin de ne pas mériter son salaire, et aujourd'hui tout reprendre prendrait un temps fou et ce n'est pas envisageable étant donné toutes les évolutions en cours et a venir.
Ça va se faire petit à petit.
oui, et bien regardes, vu que php6 se pointe un jour son travail sera à refaire de façon globale, si après tu me dis que je suis excessif, moi je te répond qu'il a manqué de profesionalisme, parceque tout le monde le savait que ca allait arriver, la solution c'était de coder en désactivant les magic quote. Ce qui me fait hurler la dedans c'est quand on passe derriere un codeur qui "ne sait pas" c'est très frustrant, c'est notre boulot de savoir ce genre de choses et de prendre les mesures nécessaires.
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>
Posté : 18 juin 2009, 00:19
par supercanard
Non mais dans un sens je suis d'accord, moi même avec le peu d'expérience que j'ai j'ai pris l'habitude de coder avec les magic quotes à off. Et pourtant ça veut pas dire que je suis plus compétent qu'un autre, au contraire j'ai pas d'expérience, je connais php depuis la version 5
Ce que je veut dire c'est qu'on peut pas juger les compétences globales de quelqun par rapport à un point particulier car on ne connais pas tous les pourquoi et les comment déjà. De plus a part ce point le code est très propre et bien structuré.
Posté : 18 juin 2009, 02:19
par Nagol
Non mais dans un sens je suis d'accord, moi même avec le peu d'expérience que j'ai j'ai pris l'habitude de coder avec les magic quotes à off. Et pourtant ça veut pas dire que je suis plus compétent qu'un autre, au contraire j'ai pas d'expérience, je connais php depuis la version 5
Ce que je veut dire c'est qu'on peut pas juger les compétences globales de quelqun par rapport à un point particulier car on ne connais pas tous les pourquoi et les comment déjà. De plus a part ce point le code est très propre et bien structuré.
Je ne cherche pas à accabler le type, je me place juste dans la peau du type qui passe derrière (et facilement parceque dans mon job je passe derriere une demi douzaine de type) et qui va se taper une séance de recodage de l'extreme parcequ'il a "oublié" de gérer un truc qui est évident depuis des années. Ca me fache, stou

Posté : 18 juin 2009, 02:43
par AB
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>
Ben oui mais cette fonction ne semble pas traiter les clés (cas assez rare mais bon...). J'avais ouvert un topic précédemment sur ce sujet mais sans succès.
D'ailleurs sur la
page du manuel certains commentaires en parlent, mais la fonction proposée
en commentaire sensée corriger ce bug ne traite pas les clés de premier niveau
En reprenant cette dernière fonction, pour traiter
toutes les clés j'ai fait
if (get_magic_quotes_gpc()) {
function undoMagicQuotes($array) {
$newArray = array();
foreach($array as $key => $value)
{
$key = stripslashes($key);
if (is_array($value))
{
$newArray[$key] = undoMagicQuotes($value);
}
else
{
$newArray[$key] = stripslashes($value);
}
}
return $newArray;
}
$_GET = undoMagicQuotes($_GET);
$_POST = undoMagicQuotes($_POST);
$_COOKIE = undoMagicQuotes($_COOKIE);
$_REQUEST = undoMagicQuotes($_REQUEST);
}
Posté : 18 juin 2009, 02:56
par Nagol
han une clef avec des quotes?
c'est mal ça encore, mais oui ok, effectivement ca peut arriver
