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

PHP 6, la prochaine frontière

Embed Size (px)

DESCRIPTION

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

Citation preview

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