• [^] # Re: ereg ?

    Posté par (site web personnel) . En réponse au journal PHP6: Outch !. Évalué à 2.

    C'est vrai que la syntaxe ereg est moins cryptique ([troll] faut dire que preg ça vient du monde perl [/troll])

    Les fonctions mysql_* vont peut être disparaitre. Maintenant :
    - tu auras des mysqli_* qui fonctionneront quasiment pareil, il suffit de faire un rechercher/remplacer et corriger un ou deux détails (la phase connexion entre autres)
    - rien ne t'empêche de compiler toi même l'extension mysql sur ta version de PHP, ou d'utiliser une bibliothèque qui reprend les fonctions mysql pour les diriger vers mysqli

    Bref, c'est plus clean pour PHP mais ça ne te retire pas grand chose. De toutes façons d'ici que ce PHP6 sorte il est peu probable que tu utilises encore du mysql 3.23 donc de toutes façons les fonctions mysql_* actuelles n'auraient pas fonctionné.

    > vu que sur une de mes machines j'ai un mysql 4.0.17 qui tourne et que je continue
    > a utilise les fameuses fonction mysql_* je me dis que vos post en sont pas sur la
    > même longueur d'onde

    Oui, en fait je prend un raccourci. La cassure n'est pas sur 3.23 / 4.0 mais sur 4.0.x / 4.0.y, je ne me souviens plus exactement où.
    Il y a aussi des gens qui utilisent les mysql_* avec mysql 4.1 et > mais c'est au prix d'une bidouille (une config spéciale du serveur mysql qui lui demande d'utiliser les anciens protocoles d'authentification)

    > vu que le changement n'est applicable que pour le temps ou le fichier est traité,
    > j'etais (je le suis encore) convaincu qu'on pouvait utiliser ini_set() pour mettre
    > les register global a off, ainsi que les magic_quotes.

    Non, parce que quand il lit ton fichier, il a déjà initialisé (ou pas) les globales, et a déjà opéré (ou pas) l'échappement des magic_quotes_gpc.


    > moi, perso... la suppression de mysql, c'est putot une decission politique non ?
    > (licence GPL)... faut-il s'en rejuire ?

    C'est effectivement à l'origine une décision politique, mais pas du groupe PHP. Ca vient du groupe Mysql.

    En gros l'ancien client Mysql était typé LGPL ou BSD (je ne sais plus) pour qu'une appli non compatible GPL puisse se connecter à un serveur Mysql.

    Ils ont voulu restreindre un peu plus et le nouveau client à partir de mysql 4.0 (celui qui permet de se connecter à mysql 4.1) est GPL uniquement. Pour que les gens ne continuent pas à utiliser l'ancien client ils ont changé le système d'authentification (ou plus précisément le cryptage des mots de passe). On créé l'incompatibilité pour forcer la mise à jour, donc la nouvelle licence, donc le paiement de la licence proprio pour ceux chez qui ça ne convient pas.

    Le premier défaut c'est qu'on se retrouve avec deux clients mysql différents. Ca explique qu'on ait maintenant deux extensions "mysql" et "mysqli". Le second défaut c'était que l'extension "mysql" était fournie par défaut avant. On ne peut pas faire la même chose avec "mysqli" parce que si PHP est du logiciel libre (assez proche de BSD), ce n'est pas du logiciel compatible GPL. (note; ce problème de licence a été réglé depuis)

    Donc oui, c'est bourré de politique là dedans. Mais bon, c'est comme ça.

    > mysqli aurat'il des perfs comparable ?

    oui

    > faudrat'il se payer le code des appli php pour changer les appels de mysql ?

    Non si tu contrôles ton serveur, tu peux le bidouiller pour te connecter avec l'ancien client (utiliser l'ancien cryptage des mots de passe)
    Oui sinon, mais les modifs à faire sont assez simples.

    Maintenant on parle de PHP6, qui au mieux sortira en décembre 2006 (au mieux). Aujourd'hui, un an et demi après PHP 5.0, 95% des gens sont encore en PHP4.
    Autant dire que rien ne t'obligera à être en PHP6 à ce moment là, donc à changer quoi que ce soit à ton code.