php 6, la prochaine frontière

29
NEXEN - ALTER WAY GROUP 1 PHP 6, la prochaine frontière

Upload: seguy-damien

Post on 28-Nov-2014

2.846 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP 1

PHP 6, la prochaine frontière

Page 2: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Qui parle?

Damien Seguy Architecte Open

Source Audits sécurité et

performances Eleveur d'éléPHPants

Page 3: PHP 6, la prochaine frontière

Lancé en 2006 PHP 6 déjà disponible

snaps.php.net Compilable

Loin d'être fini

NEXEN - ALTER WAY GROUP

PHP 6, déjà?

Page 4: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Nouveautés

Nettoyages Ajouts Unicode Unicode Unicode Unicode

Améliorations Conservation Ce qui change

Page 5: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Nettoyages

ncurses ereg mime_magic

remplacée par fileinfo fonction dl() (par défaut) Sortis de la distributions

Rangé dans PECL

Page 6: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Nettoyages

register_globals safe_mode magic_quotes ze1_compatibility register_long_variables break le dynamique

Page 7: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Ajouts

file_info Vérifier les types de fichiers

mysqlnd MySQL Native Driver

hash Pour les sessions

apc ? pas encore...

Page 8: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Ajouts

Goto On aime ou pas

<?php $i = 1; Label: print "$i: ok\n"; $i++;  if ($i <= 10) goto Label;

for($i = 0; $i < 10; $i++) {    print "$i: ok\n"; } ?>

Page 9: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Nouvelles fonctions

char_* collator_* gc_* locale_* mhash_* unicode_*

strtotitle var_inspect str_getcsv

Page 10: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Unicode

Gérer les langues Basé sur ICU

de IBM unicode.semantics Andrei Zmeivski et

Sara Golemon

Page 11: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Unicode

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

Page 12: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Je ne suis pas un octet!

Un caractère n'est pas un octet$francais = "Bonjour le monde";echo strlen($francais);// 16 caractères

$chinois = "你好发国人";echo strlen($chinois);// 5 caractèresecho strlen((binary) $chinois);// 15 caractères

Page 13: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;

Page 14: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;

Inuit

Page 15: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;

InuitTamoul

Page 16: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;

InuitTamoulTibétain

Page 17: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

À la pelle

500+ encodages 230 locales (formats et fuseaux) Expressions rationnelles Translitération Découpage de mots Accès en écritures aux caractères

Page 18: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Offset de chaînes

On peut accéder aux caractères en lecture et écriture

Les [] sont recommandés

Les {} sont obsolètes

$pays = "发国";echo $pays[0];// result is 发$pays[0] = '中';// $pays vaut 中国

Page 19: PHP 6, la prochaine frontière

$text = "Les mots ne sont séparés que par des espaces? non!";foreach (new TextIterator($text, TextIterator::WORD) as $u) {if ($u != " ") echo($u),"\n";} Les

motsnesontséparésquepardesespaces?non!

NEXEN - ALTER WAY GROUP

Utilitaires texte

Découpages intelligents Octets Caractères Mots Phrases entières

Page 20: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Translitération$noms = "김, 국삼김, 명희たけだ, まさゆきおおはら, まなぶГорбачев, МихаилКозырев, АндрейΚαφετζόπουλος, ΘεόφιλοςΘεοδωράτου, Ελένη";$r = strtotitle(str_transliterate($noms, "Any", "Latin"));

Gim, GugsamGim, MyeonghyiTakeda, MasayukiOohara, ManabuGorbačev, MihailKozyrev, AndrejKaphetzópoulos, TheóphilosTheodōrátou, Elénē

Page 21: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Séquences

Caractères \uXXXX \UXXXXXX \C{LATIN CAPITAL LETTER C WITH CIRCUMFLEX}

Transtypage (unicode) (binary)

Page 22: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

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

Page 23: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

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

Page 24: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Conservations

mbstring, ctype Vont disparaître

mysql mysqli, pdo, pdo2... =

Pas de débogueur intégré

Page 25: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

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

Page 26: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Ce qui changemacadams:~/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 GroupZend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies

PHP Ext Poids Mémoire4.4.8 43 8 Mo 13 ko5.3.0 65 24 Mo 50 ko6.0.0 43 19 Mo 53 ko

Page 27: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Performances?

0

1,6825

3,3650

5,0475

6,7300

add concat append md5

PHP 4 PHP 5 PHP 6

Page 28: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

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é...

Page 29: PHP 6, la prochaine frontière

NEXEN - ALTER WAY GROUP

Questions?

http://www.alterway.fr/ [email protected] http://www.nexen.net/conferences.php