PHP5.4 | PHPTour Lille 2011   1PHP 5.4 arrive...
PHP5.4 | PHPTour Lille 2011   2             Hello, Im Julien Pauli :)@julienpauli   http://julien-pauli.developpez.comIRC ...
PHP5.4 | PHPTour Lille 2011   3        Orateur prévu : David Soria ParraFrom: David Soria ParraTo: communication / AFUPHel...
PHP5.4 | PHPTour Lille 2011   4On va parler de PHP
PHP5.4 | PHPTour Lille 2011   5                PHP & PHP 5.4 ?PHP : Une belle histoire (historique)Aujourdhui : la communa...
PHP5.4 | PHPTour Lille 2011   6                  Historique1995 : PHP 1.01998 : PHP 3.02000 : PHP 4.02004 : PHP 5.02009 : ...
PHP5.4 | PHPTour Lille 2011   7                           Aujourdhui :“All PHP users should note that the PHP 5.2 series i...
PHP5.4 | PHPTour Lille 2011   8La communauté évolue         -      Les RFC
PHP5.4 | PHPTour Lille 2011   9                                   RFC       Une idée pour améliorer PHP ?       Publier un...
PHP5.4 | PHPTour Lille 2011   10          Requests For Commentshttps://wiki.php.net/rfc
PHP5.4 | PHPTour Lille 2011   11Nouveau processus de publication               -        Release process
PHP5.4 | PHPTour Lille 2011    12           Nouveau processus de publication“PHP releases have always been done spontaneou...
PHP5.4 | PHPTour Lille 2011   13         Un calendrier plus précisUne durée de vie de 3 ans  Une mineure par an
PHP5.4 | PHPTour Lille 2011   14      Un calendrier compréhensif2 majeures peuvent cohéxister  Comme PHP4 & PHP5 à leur ép...
PHP5.4 | PHPTour Lille 2011   15On ne casse pas tout             Majeures (PHP 5)                BC breaks possibles      ...
PHP5.4 | PHPTour Lille 2011   16  Nouveau processus de publicationhttps://wiki.php.net/rfc/releaseprocess
PHP5.4 | PHPTour Lille 2011   17Un nouveau processus de développement
PHP5.4 | PHPTour Lille 2011   18Un nouveau processus de développement
PHP5.4 | PHPTour Lille 2011   19                   PHP passe à Git24/12/2011   Passage à GitServeur git hebergé sur php.ne...
PHP5.4 | PHPTour Lille 2011   20PHP 5.4 : nouveautés techniques
PHP5.4 | PHPTour Lille 2011   21        PHP 5.4, un peu de ménageDites au revoir à :   safe_mode   register_globals, impor...
PHP5.4 | PHPTour Lille 2011   22          PHP 5.4, ajouts en vracnew ReflectionZendExtensionnew SessionHandlerCompatibilit...
PHP5.4 | PHPTour Lille 2011   23Le meilleur de PHP 5.4 … ??
PHP5.4 | PHPTour Lille 2011   24Performances !!(~+55% bruts)
PHP5.4 | PHPTour Lille 2011   25               Performances de PHP5.4La plus belle amélioration de PHP 5.4 est sous le man...
PHP5.4 | PHPTour Lille 2011   26PHP 5.4,micro-bench  <--PHP 5.3 : 25.8 sec  PHP 5.4 : 9.9sec →  Micro bench dispo sur svn
PHP5.4 | PHPTour Lille 2011   27           PHP 5.4, essai PHPUnitLançons la suite de tests de Symfony2   Symfony2 master  ...
PHP5.4 | PHPTour Lille 2011   28         PHP 5.4 – sort open tags<?= est toujours disponible quel que soit le niveau desor...
PHP5.4 | PHPTour Lille 2011   29                Serveur web embarquéPas pour de la production ;-)   Possibilité dutiliser ...
PHP5.4 | PHPTour Lille 2011   30                        CallableNouveau typage : "callable"   "callable" devient donc un m...
PHP5.4 | PHPTour Lille 2011   31       Quest ce qui est "callable" ?Toute callback PHP :   some-existing-function   array(...
PHP5.4 | PHPTour Lille 2011   32             Short Array SyntaxPython or Javascript anyone ?$cfg = array(loglevel => 3,   ...
PHP5.4 | PHPTour Lille 2011   33             Arrays dereferencingOui, ça cétait très attendu ...function foo() {   return ...
PHP5.4 | PHPTour Lille 2011   34           "new" fluent interfaceOn aime, on naime pas, on aime peut-être ...    $obj = (n...
PHP5.4 | PHPTour Lille 2011   35Invocations statiques dynamiques        echo Bar::{foo}();
PHP5.4 | PHPTour Lille 2011   36                            WTF ? OMG !       I love that           (I really do)class Foo...
PHP5.4 | PHPTour Lille 2011   37   Notation binaire pour les entiersCest vrai que ça manquait ;-)   0b var_dump( 0b1010 + ...
PHP5.4 | PHPTour Lille 2011   38                          TraitsMixins, héritage horizontal, héritage multiple   Appelez-l...
PHP5.4 | PHPTour Lille 2011   39                                   Traits                      trait ToArray {            ...
PHP5.4 | PHPTour Lille 2011   40                                Closures        Les closures supportent (enfin) $this     ...
PHP5.4 | PHPTour Lille 2011   41                    Domaine des closures       Suite au support de $this, les closures peu...
PHP5.4 | PHPTour Lille 2011   42                       JSONSerializable     Nouvelle interface         Fonctionnement "à l...
PHP5.4 | PHPTour Lille 2011   43PHP a besoin de vous !
PHP5.4 | PHPTour Lille 2011   44          Aidez-nous à tester PHPCompilez, make test, et envoyez vos résultatsLancez vos s...
PHP5.4 | PHPTour Lille 2011   45          Aidez-nous à tester PHPCompilez, make test, et envoyez vos résultats   http://qa...
PHP5.4 | PHPTour Lille 2011   46                 Ressources, infosPHP 5.4 : 2011   Décembre ? Cadeau de Noël ?   On est en...
PHP5.4 | PHPTour Lille 2011   47                       Merci !Merci à la communauté PHPMerci à ses contributeurs   Felipe ...
PHP5.4 | PHPTour Lille 2011   48                    Questions ?Chattez avec David Soria Parra   De 12h30 à 14h   IRC Freen...
Upcoming SlideShare
Loading in …5
×

PHPTour 2011 - PHP5.4

11,222 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,222
On SlideShare
0
From Embeds
0
Number of Embeds
5,574
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

PHPTour 2011 - PHP5.4

  1. 1. PHP5.4 | PHPTour Lille 2011 1PHP 5.4 arrive...
  2. 2. PHP5.4 | PHPTour Lille 2011 2 Hello, Im Julien Pauli :)@julienpauli http://julien-pauli.developpez.comIRC Freenode, EFNet @jpauliSoftware architect – PHP GuruWorking at Comuto http://www.covoiturage.frOSS Contributor PHP Contributor – http://doc.php.net/fr jpauli@php.net
  3. 3. PHP5.4 | PHPTour Lille 2011 3 Orateur prévu : David Soria ParraFrom: David Soria ParraTo: communication / AFUPHello,Im very very sorry, but I have to cancel my talk on Thursday. Imsick and have to stay at home for the week. This is the first time Ihave to cancel a talk at all and Im very very sorry for it.[...]
  4. 4. PHP5.4 | PHPTour Lille 2011 4On va parler de PHP
  5. 5. PHP5.4 | PHPTour Lille 2011 5 PHP & PHP 5.4 ?PHP : Une belle histoire (historique)Aujourdhui : la communauté évolue Un nouveau processus de contribution De nouveaux canaux de développement Une nouvelle timeline de distributionNouveautés techniques Performances FonctionnalitésConclusion
  6. 6. PHP5.4 | PHPTour Lille 2011 6 Historique1995 : PHP 1.01998 : PHP 3.02000 : PHP 4.02004 : PHP 5.02009 : PHP 5.32011 : PHP 5.4PHP 6 ?http://museum.php.net
  7. 7. PHP5.4 | PHPTour Lille 2011 7 Aujourdhui :“All PHP users should note that the PHP 5.2 series is NOT supported anymore.” http://www.php.net
  8. 8. PHP5.4 | PHPTour Lille 2011 8La communauté évolue - Les RFC
  9. 9. PHP5.4 | PHPTour Lille 2011 9 RFC Une idée pour améliorer PHP ? Publier une RFC La réfléchir, la mûrir Publier des patchs, des squelettes Les mûrir Faire voter la RFC https://wiki.php.net/rfc/voting"Theres no way around this small issue. Changes made to the PHP languagewill affect millions of people, and theoretically, each and every oneof them should have a say in what we do. For obvious reasons, though,this isnt a practical approach." https://wiki.php.net/rfc/voting
  10. 10. PHP5.4 | PHPTour Lille 2011 10 Requests For Commentshttps://wiki.php.net/rfc
  11. 11. PHP5.4 | PHPTour Lille 2011 11Nouveau processus de publication - Release process
  12. 12. PHP5.4 | PHPTour Lille 2011 12 Nouveau processus de publication“PHP releases have always been done spontaneously, in a somehowchaotic way. Individual(s) decided when a release will happen and what couldor could fit in. Release managers role are unclear and the way to nominatethem is not clearly defined either.The goals of this RFC aim to solve these issues while giving to us, our usersand 3rd parties (distributions, contributors, etc.) more visibility and the abilityto actually have a roadmap, or plan developments.” https://wiki.php.net/rfc/releaseprocess
  13. 13. PHP5.4 | PHPTour Lille 2011 13 Un calendrier plus précisUne durée de vie de 3 ans Une mineure par an
  14. 14. PHP5.4 | PHPTour Lille 2011 14 Un calendrier compréhensif2 majeures peuvent cohéxister Comme PHP4 & PHP5 à leur époque Simplifier les migrations
  15. 15. PHP5.4 | PHPTour Lille 2011 15On ne casse pas tout Majeures (PHP 5) BC breaks possibles Mineures (PHP 5.4) nouvelles fonctionnalités Mouvements dextensions (PECL ↔ Core) Pas de BC break Révisions (PHP 5.4.1) Bug fixes seulement
  16. 16. PHP5.4 | PHPTour Lille 2011 16 Nouveau processus de publicationhttps://wiki.php.net/rfc/releaseprocess
  17. 17. PHP5.4 | PHPTour Lille 2011 17Un nouveau processus de développement
  18. 18. PHP5.4 | PHPTour Lille 2011 18Un nouveau processus de développement
  19. 19. PHP5.4 | PHPTour Lille 2011 19 PHP passe à Git24/12/2011 Passage à GitServeur git hebergé sur php.net Pour des raisons de sécurité et de gestion des utilisateursMirroir sur githubByebye SVN
  20. 20. PHP5.4 | PHPTour Lille 2011 20PHP 5.4 : nouveautés techniques
  21. 21. PHP5.4 | PHPTour Lille 2011 21 PHP 5.4, un peu de ménageDites au revoir à : safe_mode register_globals, import_request_variables() register_long_arrays allow_call_time_pass_reference ( foo(&$bar) ) y2k_compliance magic_quotes*** session_register(), session_unregister(), session_is_registered() ext/sqlite
  22. 22. PHP5.4 | PHPTour Lille 2011 22 PHP 5.4, ajouts en vracnew ReflectionZendExtensionnew SessionHandlerCompatibilité avec autoconf 2.59+ (obligatoire)MySQLnd activé par défaut (et non plus libmysql)http_response_code()session_status()ReflectionClass::newInstanceWithoutConstructor()Dtrace support (mac & Solaris)E_ALL contient E_STRICT ;-)
  23. 23. PHP5.4 | PHPTour Lille 2011 23Le meilleur de PHP 5.4 … ??
  24. 24. PHP5.4 | PHPTour Lille 2011 24Performances !!(~+55% bruts)
  25. 25. PHP5.4 | PHPTour Lille 2011 25 Performances de PHP5.4La plus belle amélioration de PHP 5.4 est sous le manteau http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/NEWS- Improved Zend Engine, performance tweaks and optimizations: (Dmitry) . Inlined most probable code-paths for arithmetic operations directly into executor. . Eliminated unnecessary iterations during request startup/shutdown. . Changed $GLOBALS into a JIT autoglobal, so its initialized only if used. (this may affect opcode caches!) . Improved performance of @ (silence) operator. . Simplified string offset reading. $str[1][0] is now a legal construct. . Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties. . Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed. . Added an optimization which saves memory and emalloc/efree calls for empty HashTables. (Stas, Dmitry)[...]
  26. 26. PHP5.4 | PHPTour Lille 2011 26PHP 5.4,micro-bench <--PHP 5.3 : 25.8 sec PHP 5.4 : 9.9sec → Micro bench dispo sur svn
  27. 27. PHP5.4 | PHPTour Lille 2011 27 PHP 5.4, essai PHPUnitLançons la suite de tests de Symfony2 Symfony2 master PHPUnit 3.6.3
  28. 28. PHP5.4 | PHPTour Lille 2011 28 PHP 5.4 – sort open tags<?= est toujours disponible quel que soit le niveau desort_open_tags <?= $foo; ?>
  29. 29. PHP5.4 | PHPTour Lille 2011 29 Serveur web embarquéPas pour de la production ;-) Possibilité dutiliser un routeur (script PHP)http://www.php.net/manual/fr/features.commandline.webserver.php
  30. 30. PHP5.4 | PHPTour Lille 2011 30 CallableNouveau typage : "callable" "callable" devient donc un mot reservé class PubSub { // code...... public function subscribe($name, callable $cb) { if (!isset($this->callbacks[$name])) { $this->callbacks[$name] = array(); } $this->callbacks[$name] = $cb; } } $ps = new PubSub(); $ps->subscribe(foo, function() { echo test; }); $ps->subscribe(foo, bla); // catchable fatal error
  31. 31. PHP5.4 | PHPTour Lille 2011 31 Quest ce qui est "callable" ?Toute callback PHP : some-existing-function array($someobj, some-public-method) array(someClass, some-static-public-method) function () { };Notez cette nouvelle procédure dinvocation : class Hello { public function world($x) { return "hello $x"; } } $f = array(new Hello, world); var_dump($f(foo)); // hello foo
  32. 32. PHP5.4 | PHPTour Lille 2011 32 Short Array SyntaxPython or Javascript anyone ?$cfg = array(loglevel => 3, database => array(username => foo, password => secret) );$cfg = [loglevel => 3, database => [username => foo, password => secret] ];
  33. 33. PHP5.4 | PHPTour Lille 2011 33 Arrays dereferencingOui, ça cétait très attendu ...function foo() { return array(foo=>bar);}$var = foo()[foo];
  34. 34. PHP5.4 | PHPTour Lille 2011 34 "new" fluent interfaceOn aime, on naime pas, on aime peut-être ... $obj = (new MyClass)->someMethod();
  35. 35. PHP5.4 | PHPTour Lille 2011 35Invocations statiques dynamiques echo Bar::{foo}();
  36. 36. PHP5.4 | PHPTour Lille 2011 36 WTF ? OMG ! I love that (I really do)class Foo { public static function bar() { return [wtf]; } public function wtf() { return omg; }}$meth = bar;var_dump( (new Foo)->{Foo::$meth()[0]}() ); // omg
  37. 37. PHP5.4 | PHPTour Lille 2011 37 Notation binaire pour les entiersCest vrai que ça manquait ;-) 0b var_dump( 0b1010 + (0b01<<2) ); // 14 http://julien-pauli.developpez.com/tutoriels/php/bool-op/
  38. 38. PHP5.4 | PHPTour Lille 2011 38 TraitsMixins, héritage horizontal, héritage multiple Appelez-les comme vous voulez Aimez-les, ou pas …http://www.php.net/traits trait ToArray { public function toArray() { return $this->array; } }
  39. 39. PHP5.4 | PHPTour Lille 2011 39 Traits trait ToArray { public function toArray() { return $this->array; } }class MainConfig { class Config extends MainConfig { private $array = [foo]; use ToArray; public function config() { } private $array = [bar];} } $config = new Config; echo $config->toArray()[0]; // bar
  40. 40. PHP5.4 | PHPTour Lille 2011 40 Closures Les closures supportent (enfin) $this Byebye $that et autres $selfclass A { private $value = 1; function firstGetter($name) { return function() use ($name) { $a = new A(); return $this->$name; $firstGetter = $a->firstGetter(value); }; echo $firstGetter(); // 1 } $secondGetter = $a->secondGetter(); function secondGetter($name) { echo $secondGetter(value); //1 return function($name) { return $this->$name; }; }}
  41. 41. PHP5.4 | PHPTour Lille 2011 41 Domaine des closures Suite au support de $this, les closures peuvent maintenant changer de domaineclass A { $a = new A; private $value = 1; $b = new B; function getter() { $closureA = $a->getter(); return function() { echo $closureA(); // 2 return ++$this->value;}; } $closureB = $closureA->bindTo($b, $b);} echo $closureB(); // 43class B extends A { private $value = 42;}
  42. 42. PHP5.4 | PHPTour Lille 2011 42 JSONSerializable Nouvelle interface Fonctionnement "à la __toString()"class Foo implements JsonSerializable { private $name = PHP; public function jsonSerialize() { return "I love $this->name"; }}echo json_encode(new Foo);
  43. 43. PHP5.4 | PHPTour Lille 2011 43PHP a besoin de vous !
  44. 44. PHP5.4 | PHPTour Lille 2011 44 Aidez-nous à tester PHPCompilez, make test, et envoyez vos résultatsLancez vos suites de tests sous PHP 5.4 Et faites nous suivre vos remarquesParticipez à lélaboration de la documentation http://edit.php.net Présentation demain 11h45, salle 2, Yannick Torres
  45. 45. PHP5.4 | PHPTour Lille 2011 45 Aidez-nous à tester PHPCompilez, make test, et envoyez vos résultats http://qa.php.net/reports/?version=5.4.0RC1 http://gcov.php.net/viewer.php?version=PHP_5_4Lancez vos suites de tests sous PHP 5.4 Et faites nous suivre vos remarquesParticipez à lélaboration de la documentation http://edit.php.net Présentation demain 11h45, salle 2, Yannick Torres
  46. 46. PHP5.4 | PHPTour Lille 2011 46 Ressources, infosPHP 5.4 : 2011 Décembre ? Cadeau de Noël ? On est en RC2 pour le momenthttp://www.php.net/manual/fr/migration54.php En cours d’élaborationhttps://wiki.php.net/todo/php54Toutes les RFC en cours : https://wiki.php.net/rfc
  47. 47. PHP5.4 | PHPTour Lille 2011 47 Merci !Merci à la communauté PHPMerci à ses contributeurs Felipe Pena, Etienne Kneuss, Stanislav Malyshev, Gustavo André dos Santos Lopes, David Soria Parra, Christian Stocker, Rob Richards, Pierre Joye, Zeev Suraski, Ilia Alshanetsky […]Merci à vous !Nous recrutons :) Passez me voir
  48. 48. PHP5.4 | PHPTour Lille 2011 48 Questions ?Chattez avec David Soria Parra De 12h30 à 14h IRC Freenode #phptour http://webchat.freenode.net

×