Upload
seguy-damien
View
2.846
Download
1
Embed Size (px)
DESCRIPTION
Présentation de la future version de PHP 6,et de ses principaux avantages et défis.
Citation preview
NEXEN - ALTER WAY GROUP 1
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
Lancé en 2006 PHP 6 déjà disponible
snaps.php.net Compilable
Loin d'être fini
NEXEN - ALTER WAY GROUP
PHP 6, déjà?
NEXEN - ALTER WAY GROUP
Nouveautés
Nettoyages Ajouts Unicode Unicode Unicode Unicode
Améliorations Conservation Ce qui change
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
NEXEN - ALTER WAY GROUP
Nettoyages
register_globals safe_mode magic_quotes ze1_compatibility register_long_variables break le dynamique
NEXEN - ALTER WAY GROUP
Ajouts
file_info Vérifier les types de fichiers
mysqlnd MySQL Native Driver
hash Pour les sessions
apc ? pas encore...
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"; } ?>
NEXEN - ALTER WAY GROUP
Nouvelles fonctions
char_* collator_* gc_* locale_* mhash_* unicode_*
strtotitle var_inspect str_getcsv
NEXEN - ALTER WAY GROUP
Unicode
Gérer les langues Basé sur ICU
de IBM unicode.semantics Andrei Zmeivski et
Sara Golemon
NEXEN - ALTER WAY GROUP
Unicode
Conversions Dans le code PHP Dans les tris Dans les chaînes Dans les manipulations Dans les locales
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
NEXEN - ALTER WAY GROUP
Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;
NEXEN - ALTER WAY GROUP
Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;
Inuit
NEXEN - ALTER WAY GROUP
Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;
InuitTamoul
NEXEN - ALTER WAY GROUP
Les identifiantsclass français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {}}$déjà = new français();echo $déjà->வாேகனச;
InuitTamoulTibétain
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
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 中国
$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
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ē
NEXEN - ALTER WAY GROUP
Séquences
Caractères \uXXXX \UXXXXXX \C{LATIN CAPITAL LETTER C WITH CIRCUMFLEX}
Transtypage (unicode) (binary)
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
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
NEXEN - ALTER WAY GROUP
Conservations
mbstring, ctype Vont disparaître
mysql mysqli, pdo, pdo2... =
Pas de débogueur intégré
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
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
NEXEN - ALTER WAY GROUP
Performances?
0
1,6825
3,3650
5,0475
6,7300
add concat append md5
PHP 4 PHP 5 PHP 6
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é...
NEXEN - ALTER WAY GROUP
Questions?
http://www.alterway.fr/ [email protected] http://www.nexen.net/conferences.php