URL: https://linuxfr.org/users/leviathan/journaux/sortie-de-php-53 Title: Sortie de PHP 5.3 Authors: leviathan Date: 2009年07月01日T05:07:38+02:00 Tags: Score: 19 Bonjour à vous, Le langage PHP est régulièrement critiqué comme étant un langage pour mauvais programmeurs, trop laxiste et ayant des années de retard sur ce que fait Python ou encore Ruby (s'il vous plaît, ne commencez pas les comparaisons stupides en RoR et PHP...), donc bien qu'à priori, cela n'intéressera pas forcément tout le monde, le langage continue d'évoluer et, à mon humble avis, plutôt dans le bon sens. La sortie de PHP 5.3 apporte son lot de nouveautés et de correction de bugs (une centaine de correction) Parmi les nouveautés : * Une meilleure gestion des méthodes et propriétés statiques avec l'ajout d'une méthode magique __callStatic() permettant la gestion de méthodes statiques non définies. Ou encore la possibilité de faire un appel à une méthode statique avec un nom de classe en variable (de ce style : $class::methode(); ) * La possibilité d'utiliser des [fonctions lambda](http://fr.wikipedia.org/wiki/Fonction_anonyme). Il était déjà possible de créer dynamiquement des fonctions avec la fonction create_function() mais ces dernières n'étaient pas prises en compte dans les système de cache d'opcode et rendaient le code moins lisible * L'ajout des fermetures qui ajoutent aux fonctions lambda la possibilité d'utiliser des variables externes. Celle-ci sont passées, par défaut, par valeur ce qui permet de ne pas avoir de résultats indésirables (que l'on pourrait avoir avec l'utilisation d'un global) * L'une des fonctionnalités les plus attendues : l'[espace de noms](http://fr.wikipedia.org/wiki/Espace_de_noms_(programmation)). Je ne vous ferez pas l'affront de vous décrire les utilités d'un tel ajout dans le langage mais si vous ne savez ce que cela peut apporter, référez vous aux liens ci-dessous. Des critiques sont notamment apparu sur le choix du séparateur, je me garderais bien de commenter cette décision avant de l'avoir tester plus profondément. * L'amélioration du fichier de configuration php.ini qui permet maintenant d'avoir des variables à l'intérieur de ce dernier, très utile pour éviter les redondances (ah si on pouvait avoir la même chose en CSS...). De plus il est possible d'avoir un fichier de configuration par site et/ou par utilisateur (si l'on fonctionne en CGI), très pratique pour donner plus ou moins de droits en fonction de la confiance accordée aux différents usagés de votre serveur. * Une meilleure gestion de garbage collector qui avait quelques difficultés avec les objets ayant une relation parent-enfant. * Certaines extensions rentre dans le cœur de PHP. C'est le cas de FileInfo (utilisé pour connaitre des informations sur les fichiers), Intl (fonctions pour le support de l'unicode), Phar (fonctions d'empaquetage de fichier et qui permettent également l'utilisation directe de fichier php à l'intérieur de l'archive), mysqlnd (remplacement de l'extension utilisé auparavant par MySQL et MySQLi) et SQLite3 (ah, enfin le support natif de la version 3, il était temps) * L'arrivée de la constante d'erreur E_DEPRECATED qui sera renvoyé lors de l'utilisation de fonctions non supportées par la prochaine version de PHP. Parmi ces fonctions dépréciées : ereg_* que l'on conseille de remplacer par preg_* car il n'y aura plus qu'un seul moteur d'expressions régulières ou encore les magic_quotes. * Enfin et j'ai préféré garder le meilleur pour la fin. L'instruction bien connue "goto" fait son arrivée. J'aurais pu attendre vendredi rien que pour cette instruction, mais je préfère poster mon premier journal sereinement... Voilà, cette version de PHP intègre vraiment des choses prometteuses pour les développeurs web. Gageons qu'ils seront en tirer le meilleur. Pour aller plus loin dans la découverte de PHP 5.3 : [Les nouveautés de PHP 5.3 (sur Developpez.com)](http://g-rossolini.developpez.com/tutoriels/php/5.3/?page=sommaire) [PHP 5.3 : Nouveautés : Introduction et Sommaire (de Pascal Martin)](http://blog.pascal-martin.fr/post/php-5.3-introduction-sommaire)

AltStyle によって変換されたページ (->オリジナル) /