2. Qui parle?
Damien Seguy
Architecte Open
Source
Audits sécurité et
performances
Eleveur d'éléPHPants
NEXEN - ALTER WAY GROUP
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. Nouveautés
Nettoyages
Ajouts
Unicode
Unicode
Unicode
Unicode
Améliorations
Conservation
Ce qui change
NEXEN - ALTER WAY GROUP
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
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. 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. Nouvelles fonctions
char_*
collator_*
gc_* strtotitle
locale_* var_inspect
mhash_* str_getcsv
unicode_*
NEXEN - ALTER WAY GROUP
10. Unicode
Gérer les langues
Basé sur ICU
de IBM
unicode.semantics
Andrei Zmeivski et
Sara Golemon
NEXEN - ALTER WAY GROUP
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. 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. Les identifiants
class français {
function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {}
function வாேகனச {}
function འབྲུག་ཡུལ། {}
}
$déjà = new français();
echo $déjà->வாேகனச;
NEXEN - ALTER WAY GROUP
14. Les identifiants
class français {
function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
function வாேகனச {}
function འབྲུག་ཡུལ། {}
}
$déjà = new français();
echo $déjà->வாேகனச;
NEXEN - ALTER WAY GROUP
15. Les identifiants
class français {
function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
function வாேகனச {} Tamoul
function འབྲུག་ཡུལ། {}
}
$déjà = new français();
echo $déjà->வாேகனச;
NEXEN - ALTER WAY GROUP
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. À 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. 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. 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. 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. Séquences
Caractères
uXXXX
UXXXXXX
C{LATIN CAPITAL LETTER C WITH
CIRCUMFLEX}
Transtypage
(unicode)
(binary)
NEXEN - ALTER WAY GROUP
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. 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. Conservations
mbstring, ctype
Vont disparaître
mysql
mysqli, pdo, pdo2... =
Pas de débogueur intégré
NEXEN - ALTER WAY GROUP
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. 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. 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. 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