PHP 6, la prochaine frontière

1 829 vues

Publié le

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

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 829
Sur SlideShare
0
Issues des intégrations
0
Intégrations
26
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×