présentation de php 5.4 [fr]
TRANSCRIPT
Nouvelle version, PHP 5.4
Versions de PHP
Communaut
Performance
Fonctionnalits
Migration
Production
Arnaud Lemercier
[email protected]@arnolemhttp://www.wixiweb.fr@wixiweb
< Versions de PHP />
De Personal Home Page / Form Interpreter
PHP Hypertext Preprocessor
Historique de PHP
1995 - PHP/FI cr par Rasmus Lerdorf
1998 - PHP 3.0
Rcriture 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
PHP 5.4 Version Mineure ou Majeure ?
MAJEURE
Rupture de compatibilitEx PHP 6
REVISION
Correction de bug
Ex PHP 5.4.1
MINEURE
Nouvelles fonctionnalits
Pas de rupture de compatibilit
Mvt d'Extensions
PECL Core
Ex PHP 5.4
< Communaut />
Restructuration de la communaut
RFC pour chaque nouvelles fonctionnalits
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
< Performance />
Une rcriture en profondeur
Performances nettement amliores
Nous avons rcrit certaines parties du moteur PHP pour qu'il consomme moins de mmoire et supporte plus d'utilisateurs simultans
Zeev Suraski
Performance PHP 5.3 > PHP 5.4
Drupal
+7% requtes
-50% mmoire
Zend Framework
+21% requtes
-23% mmoire
Micro Bench
-50% tps dexcution
Symfony 2 (PHPUnit)
-55% mmoire
-35% tps dexcution
Doctrine 2
-40% mmoire
WordPress
+9% requtes
-40% mmoire
< Fonctionnalits />
Les nouveaux joujoux des dveloppeurs
Short Open Tags assum
Serveur web de dveloppement test intgr
Serveur web uniquement pour des tests
Possibilit de dfinir un fichier de routage en php
Type Callable / Closure / Fonction anonyme
Short Array Syntax
Arrays deferencing
Appel direct de mthode d'instance
Invocations statiques dynamiques (call_user_func)
Notation Binaire
Traits / Hritage multiple horizontal (1/4)
Rutilisation de fonctionnalit
Template de classe (Singleton)
Mais attention aux conflits entre traits
Ne remplace pas la logique d'hritage (parent)
Prioritsdes mthodes :
Classe > Trait > Parent
Traits / Hritage multiple horizontal (2/4)
Attention la dclaration de proprits dans les traits!
PAF: Pastque! ^^
Traits / Hritage multiple horizontal (3/4)
Traits / Hritage multiple horizontal (4/4)
Gestion des conflits entre mthodes
Objet comme fonction
Ajout de la mthode magique __invoke()
Amlioration des erreurs
php -r 'class abc foo'
PHP 5.3 :
PHP Parse error: syntax error, unexpected T_STRING,
expecting '{' in Command line code on line 1
PHP 5.4 :
PHP Parse error: syntax error, unexpected 'foo' (T_STRING), expecting '{' in Command line code on line 1
Progression de l'upload d'un fichier
< Migration />
Que faut-il auditer dans vos applications?
Migration: Incompatibilit
Consultez le guide de migration: http://php.net/migration54
DIRECTIVESSafe Mode
Magic Quotes
Register Globals
LANGAGEbreak $x; continue $x
htmlspecialchars() et htmlentities() en UTF-8 par dfaut
Ext/SQLite
FONCTIONSsession_is_registered(), session_register() et session_unregister().
< Production />
Je suis FAN!On l'installe sur tous nos serveurs?
PHP 5.4: Pas de prcipitation
La rvision PHP 5.4.1 est dj prvue pour le 25/04
Les IDE et outils ne sont pas encore tous compatibles
PHP 5.4 n'est pas encore dans les dpts officiels
(Linux)
Les CMS ne sont pas tous compatibles (Joomla 1.x, spip,
...)
Attention: OVH propose PHP 5.4 RC sur les mutualiss
Le patch de scurit Suhosin n'est pas encore disponible
APC pour PHP 5.4 est en BETA
CONTACT
[email protected]: @arnolemhttp://www.wixiweb.fr