PHP 6,
la prochaine frontière


     NEXEN - ALTER WAY GROUP   1
Qui parle?
               Damien Seguy
               Architecte Open
                Source
               Audits sécu...
PHP 6, déjà?

 Lancé en 2006
 PHP 6 déjà disponible
   snaps.php.net
 Compilable
   Loin d'être fini




            ...
Nouveautés

                               Nettoyages
                               Ajouts
                            ...
Nettoyages

 ncurses
 ereg
 mime_magic
    remplacée par fileinfo
 fonction dl() (par défaut)
 Sortis de la distribu...
Nettoyages

 register_globals
 safe_mode
 magic_quotes
 ze1_compatibility
 register_long_variables
 break le dynamiq...
Ajouts

 file_info
    Vérifier les types de fichiers
 mysqlnd
    MySQL Native Driver
 hash
    Pour les sessions
...
Ajouts
                  <?php
                  $i = 1;
 Goto            Label:
   On aime       print quot;$i: oknquot...
Nouvelles fonctions

 char_*
 collator_*
 gc_*                            strtotitle
 locale_*                       ...
Unicode

 Gérer les langues
 Basé sur ICU
  de IBM
 unicode.semantics
 Andrei Zmeivski et
  Sara Golemon

            ...
Unicode

 Conversions
 Dans le code PHP
 Dans les tris
 Dans les chaînes
 Dans les manipulations
 Dans les locales

...
Je ne suis pas un octet!

  Un caractère n'est pas un octet
       $francais = quot;Bonjour le mondequot;;
       echo st...
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {}
          function வாேகனச      {}
          fun...
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {}
       ...
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {} Tamoul
...
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {} Tamoul
...
À la pelle

  500+ encodages
  230 locales (formats et fuseaux)
  Expressions rationnelles
  Translitération
  Découp...
Offset de chaînes

  On peut accéder aux caractères en
   lecture et écriture
  Les [] sont        $pays = quot;    quot...
Utilitaires texte
$text = quot;Les mots ne sont séparés que par des espaces? non!quot;;
foreach (new TextIterator($text, T...
Translitération
$noms = quot;
  ,                                       Gim, Gugsam
  ,                                   ...
Séquences
 Caractères
     uXXXX
     UXXXXXX
     C{LATIN CAPITAL LETTER C WITH
      CIRCUMFLEX}
 Transtypage
   (...
Entrée / sortie

  Encodage de script
  Encodage de fichiers
  Encodage d'exécution
  Encodage HTTP d'entrée
  Encoda...
Améliorations

 __autoload() est retirée de
  situations limites (is_a(), catch)
 output_buffering : réécriture totale
...
Conservations

 mbstring, ctype
   Vont disparaître
 mysql
   mysqli, pdo, pdo2... =
 Pas de débogueur intégré


    ...
Conservations

 Les fonctions et leur nom
    Pas de standardisation forcée
 Les identifiants sont toujours
  insensibl...
Ce qui change
macadams:~/bin/php6.0-200801221530/sapi/cli macbook$ ./php
PHP Warning: Directive 'register_globals' is no l...
Performances?
               PHP 4              PHP 5                     PHP 6

6,7300


5,0475


3,3650


1,6825


    0...
Où en est-on?

 Ça compile
 62 % des fonctions PHP ont été
  revues
 PHP 5.3 doit sortir avant
    La version de trans...
Questions?




 http://www.alterway.fr/
 damien.seguy@nexen.net
 http://www.nexen.net/conferences.php
               NE...
Upcoming SlideShare
Loading in …5
×

PHP 6, la prochaine frontière

1,813 views

Published on

Présentation de la future version de PHP 6,et de ses principaux avantages et défis.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,813
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PHP 6, la prochaine frontière

  1. 1. PHP 6, la prochaine frontière NEXEN - ALTER WAY GROUP 1
  2. 2. Qui parle?  Damien Seguy  Architecte Open Source  Audits sécurité et performances  Eleveur d'éléPHPants NEXEN - ALTER WAY GROUP
  3. 3. PHP 6, déjà?  Lancé en 2006  PHP 6 déjà disponible  snaps.php.net  Compilable  Loin d'être fini NEXEN - ALTER WAY GROUP
  4. 4. Nouveautés  Nettoyages  Ajouts  Unicode  Unicode  Unicode  Unicode  Améliorations  Conservation  Ce qui change NEXEN - ALTER WAY GROUP
  5. 5. Nettoyages  ncurses  ereg  mime_magic  remplacée par fileinfo  fonction dl() (par défaut)  Sortis de la distributions  Rangé dans PECL NEXEN - ALTER WAY GROUP
  6. 6. Nettoyages  register_globals  safe_mode  magic_quotes  ze1_compatibility  register_long_variables  break le dynamique NEXEN - ALTER WAY GROUP
  7. 7. Ajouts  file_info  Vérifier les types de fichiers  mysqlnd  MySQL Native Driver  hash  Pour les sessions  apc ? pas encore... NEXEN - ALTER WAY GROUP
  8. 8. Ajouts <?php $i = 1;  Goto Label:  On aime print quot;$i: oknquot;; $i++;  if ($i <= 10) goto Label;  ou pas for($i = 0; $i < 10; $i++)  {    print quot;$i: oknquot;; } ?> NEXEN - ALTER WAY GROUP
  9. 9. Nouvelles fonctions  char_*  collator_*  gc_*  strtotitle  locale_*  var_inspect  mhash_*  str_getcsv  unicode_* NEXEN - ALTER WAY GROUP
  10. 10. Unicode  Gérer les langues  Basé sur ICU de IBM  unicode.semantics  Andrei Zmeivski et Sara Golemon NEXEN - ALTER WAY GROUP
  11. 11. Unicode  Conversions  Dans le code PHP  Dans les tris  Dans les chaînes  Dans les manipulations  Dans les locales NEXEN - ALTER WAY GROUP
  12. 12. Je ne suis pas un octet!  Un caractère n'est pas un octet $francais = quot;Bonjour le mondequot;; echo strlen($francais); // 16 caractères $chinois = quot; quot;; echo strlen($chinois); // 5 caractères echo strlen((binary) $chinois); // 15 caractères NEXEN - ALTER WAY GROUP
  13. 13. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  14. 14. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  15. 15. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} Tamoul function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  16. 16. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} Tamoul function འབྲུག་ཡུལ། {} Tibétain } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  17. 17. À la pelle  500+ encodages  230 locales (formats et fuseaux)  Expressions rationnelles  Translitération  Découpage de mots  Accès en écritures aux caractères NEXEN - ALTER WAY GROUP
  18. 18. Offset de chaînes  On peut accéder aux caractères en lecture et écriture  Les [] sont $pays = quot; quot;; recommandés echo $pays[0]; // result is  Les {} sont $pays[0] = ' '; obsolètes // $pays vaut NEXEN - ALTER WAY GROUP
  19. 19. Utilitaires texte $text = quot;Les mots ne sont séparés que par des espaces? non!quot;; foreach (new TextIterator($text, TextIterator::WORD) as $u) { if ($u != quot; quot;) echo($u),quot;nquot;; } Les mots ne  Découpages intelligents sont  Octets séparés que  Caractères par des  Mots espaces ?  Phrases entières non ! NEXEN - ALTER WAY GROUP
  20. 20. Translitération $noms = quot; , Gim, Gugsam , Gim, Myeonghyi , Takeda, Masayuki Oohara, Manabu , Gorbačev, Mihail Горбачев, Михаил Kozyrev, Andrej Козырев, Андрей Kaphetzópoulos, Καφετζόπουλος, Θεόφιλος Theóphilos Θεοδωράτου, Ελένηquot;; Theodōrátou, Elénē $r = strtotitle( str_transliterate($noms, quot;Anyquot;, quot;Latinquot;)); NEXEN - ALTER WAY GROUP
  21. 21. Séquences  Caractères  uXXXX  UXXXXXX  C{LATIN CAPITAL LETTER C WITH CIRCUMFLEX}  Transtypage  (unicode)  (binary) NEXEN - ALTER WAY GROUP
  22. 22. Entrée / sortie  Encodage de script  Encodage de fichiers  Encodage d'exécution  Encodage HTTP d'entrée  Encodage HTTP de sortie  Traitement spécifique aux flux NEXEN - ALTER WAY GROUP
  23. 23. Améliorations  __autoload() est retirée de situations limites (is_a(), catch)  output_buffering : réécriture totale  Lazy coding des auto-globales  Créées à la demande NEXEN - ALTER WAY GROUP
  24. 24. Conservations  mbstring, ctype  Vont disparaître  mysql  mysqli, pdo, pdo2... =  Pas de débogueur intégré NEXEN - ALTER WAY GROUP
  25. 25. Conservations  Les fonctions et leur nom  Pas de standardisation forcée  Les identifiants sont toujours insensibles à la casse  Il existe un patch...  Support de finally  Héritage multiple NEXEN - ALTER WAY GROUP
  26. 26. Ce qui change macadams:~/bin/php6.0-200801221530/sapi/cli macbook$ ./php PHP Warning: Directive 'register_globals' is no longer supported in PHP 6 and greater in Unknown on line 0 PHP 6.0.0-dev (cli) (built: Jan 22 2008 12:45:43) Copyright (c) 1997-2008 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies PHP Ext Poids Mémoire 4.4.8 43 8 Mo 13 ko 5.3.0 65 24 Mo 50 ko 6.0.0 43 19 Mo 53 ko NEXEN - ALTER WAY GROUP
  27. 27. Performances? PHP 4 PHP 5 PHP 6 6,7300 5,0475 3,3650 1,6825 0 add concat append md5 NEXEN - ALTER WAY GROUP
  28. 28. Où en est-on?  Ça compile  62 % des fonctions PHP ont été revues  PHP 5.3 doit sortir avant  La version de transition  16 sites dans le monde l'ont adopté... NEXEN - ALTER WAY GROUP
  29. 29. Questions?  http://www.alterway.fr/  damien.seguy@nexen.net  http://www.nexen.net/conferences.php NEXEN - ALTER WAY GROUP

×