Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Présentation de PHP 5.4 [FR]

1,174 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Présentation de PHP 5.4 [FR]

  1. 1. Nouvelle version, PHP 5.4 Versions de PHP Arnaud Lemercier Communauté Performance arnaud@wixiweb.fr Fonctionnalités @arnolem Migration http://www.wixiweb.fr Production @wixiweb
  2. 2. < Versions de PHP />De Personal Home Page / Form Interpreter à PHP Hypertext Preprocessor
  3. 3. Historique de PHP 1995 - PHP/FI créé par Rasmus Lerdorf 1998 - PHP 3.0 Réécriture par Andi Gutmans et Zeev Suraski 2000 - PHP 4.0 Zend Engine / Modularité / Performance / Session 2004 - PHP 5.0 Zend Engine 2 / POO / Exceptions / SPL / simpleXML 2009 - PHP 5.3 Namespace / PHAR / Fn anonyme / Late Static Binding
  4. 4. PHP 5.4 Version Mineure ou Majeure ? MAJEURE MINEURE Rupture de compatibilité  Nouvelles fonctionnalités Ex PHP 6  Pas de rupture de compatibilité  Mvt dExtensions PECL <=> Core REVISION Ex PHP 5.4 Correction de bug Ex PHP 5.4.1
  5. 5. < Communauté />
  6. 6. Restructuration de la communauté RFC pour chaque nouvelles fonctionnalités https://wiki.php.net/rfc/voting Un nouvelle version par an (support 2 + 1 an) https://wiki.php.net/rfc/releaseprocess De SVN vers GIT (sur php.net + miroir github) https://wiki.php.net/vcs/gitworkflow DEMARCHE QUALITE
  7. 7. < Performance />Une réécriture en profondeur
  8. 8. Performances nettement améliorées« Nous avons réécrit certaines parties du moteur PHP pour quilconsomme moins de mémoire et supporte plus dutilisateurssimultanés » Zeev Suraski
  9. 9. Performance PHP 5.3 > PHP 5.4Drupal Zend Framework Micro Bench+7% requêtes +21% requêtes -50% tps d’exécution-50% mémoire -23% mémoireWordPress Doctrine 2 Symfony 2 (PHPUnit)+9% requêtes -40% mémoire -55% mémoire-40% mémoire -35% tps d’exécution
  10. 10. < Fonctionnalités />Les nouveaux joujoux des développeurs
  11. 11. Short Open Tags assumé <?= $login ?>
  12. 12. Serveur web de développement test intégré Serveur web uniquement pour des tests Possibilité de définir un fichier de routage en php
  13. 13. Type Callable / Closure / Fonction anonyme
  14. 14. Short Array Syntax<?PHP $array = [val1, val2] ; ?>
  15. 15. Arrays deferencing <?= fnc() [index] ?>
  16. 16. Appel direct de méthode dinstance <?= (new Obj()) → method() ?>
  17. 17. Invocations statiques dynamiques (call_user_func) <?PHP controller::{$action}() ; ?>
  18. 18. Notation Binaire<?PHP $foo = 0b1100101010 ; ?>
  19. 19. Traits / Héritage multiple horizontal (1/4)  Réutilisation de fonctionnalité  Template de classe (Singleton)  Mais attention aux conflits entre traits  Ne remplace pas la logique dhéritage (parenté)  Priorités des méthodes : Classe > Trait > Parent
  20. 20. Traits / Héritage multiple horizontal (2/4) Attention à la déclaration de propriétés dans les traits ! PAF : Pastèque ! ^^
  21. 21. Traits / Héritage multiple horizontal (3/4)
  22. 22. Traits / Héritage multiple horizontal (4/4)Gestion des conflits entre méthodes
  23. 23. Objet comme fonction Ajout de la méthode magique __invoke()
  24. 24. Amélioration des erreursphp -r class abc fooPHP 5.3 :PHP Parse error: syntax error, unexpected T_STRING,expecting { in Command line code on line 1PHP 5.4 :PHP Parse error: syntax error, unexpected foo (T_STRING),expecting { in Command line code on line 1
  25. 25. Progression de lupload dun fichier
  26. 26. < Migration />Que faut-il auditer dans vos applications ?
  27. 27. Migration : Incompatibilité Consultez le guide de DIRECTIVES migration :  Safe Mode http://php.net/migration54  Magic Quotes  Register GlobalsFONCTIONS LANGAGE  session_is_registered(),  break $x ; continue $x session_register() et  htmlspecialchars() et session_unregister(). htmlentities() en UTF-8 par défaut  Ext/SQLite
  28. 28. < Production /> Je suis FAN !On linstalle sur tous nos serveurs ?
  29. 29. PHP 5.4 : Pas de précipitation● La révision PHP 5.4.1 est déjà prévue pour le 25/04● Les IDE et outils ne sont pas encore tous compatibles● PHP 5.4 nest pas encore dans les dépôts officiels (Linux)● Les CMS ne sont pas tous compatibles (Joomla 1.x, spip, ...)● Attention : OVH propose PHP 5.4 RC sur les mutualisés● Le patch de sécurité Suhosin nest pas encore disponible● APC pour PHP 5.4 est en BETA
  30. 30. CONTACT arnaud@wixiweb.fr Twitter : @arnolemhttp://www.wixiweb.fr

×