• # Pour compléter...

    Posté par . En réponse à la dépêche État d'insécurité chez PHP. Évalué à 10. Dernière modification le 04 février 2012 à 18:52.

    En l'état cette dépêche me semble trop sommaire pour représenter la situation. Quelques point qui me semblent importants dans l'évolution récente de PHP :

    Tests unitaires

    Désormais, les test unitaires accompagnant PHP seront tous valides. Cela semble une évidence, mais ne n'était pas le cas jusqu'à maintenant. En 2011, si on compilait soi-même PHP puis lançait un make test, on se retrouvait avec plusieurs dizaines de tests ayant échoués. Mais c'était "normal", certains tests n'étaient pas supposés réussir ! Personnellement, ça m'a surpris puis mis en rage quand j'ai expérimenté ça.
    C'est ce dysfonctionnement qui a provoqué la grosse cagade de PHP 5.3.7. La régression était bien repéré par un échec de test, mais celui-ci était noyé parmi les faux-positifs. Pire, ce problème avait été signalé sur la liste de diffusion php-dev, avec référence précise au test, mais les développeurs étaient tellement habitués aux tests qui foirent qu'ils n'ont pas réagi.

    À mon avis, cette prise au sérieux des tests unitaires est le plus important progrès de PHP en 2011.

    Passage de svn à git

    Après un sondage en interne, le code source est passé sous git. Le passage à un DVCS un progrès mineur, mais cela simplifiera en particulier les forks, comme le fameux php-fpm qui avait été développé séparément avant d'être fusionné dans PHP 5.3.

    Réorganisation du projet PHP

    Il y a eu ces derniers mois une volonté de mieux s'organiser et d'être plus transparents. Par le passé, certains épisodes ont nuit à l'image de PHP (des questions fondamentales tranchées en 10 minutes d'IRC privé avec des arguments vaseux du genre "'\' est plus facile à taper que ':'"). Le besoin de se réorganiser est aussi venu après la sortie prématurée d'une version 3.5.8 qui aurait dû être repoussée car un problème de compatibilité avait été détecté. Le passif de feu PHP6 a aussi joué.
    Il y a désormais un texte pour décrire le release process là où tout se faisait auparavant au jugé.

    Compatibilité

    Le langage se débarrasse enfin des erreurs du passé (enfin, certaines, vu que la liste en est longue). PHP 5.4 abandonne supprime enfin les catastrophiques "register_globals" (génération spontanée de variables à partir des paramètres GET, POST et des cookies). En terme de sécurité, c'est bien d'enlever de PHP des parties de code obsolètes et dangereuses quand activées.