Transcript
Page 1: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

« Que nous réserve l'avenir ? »

Page 2: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Nouveautés de PHP 5.3

The future is here!– almost

Page 3: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Qui suis-je ?● Pascal MARTIN● Expert technique PHP chez SQLI

● Membre de la Cellule Architecture PHP– Capitalisation– Veille technologique

● Blog perso● http://blog.pascal-martin.fr/

– Articles techniques PHP & Javascript– Dont une série de 30 articles sur les Nouveautés de PHP 5.3

Page 4: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Introduction● Versions de PHP

● 4.4.9 : Août 2008 – plus maintenu !● 5.0.0 : juillet 2004● 5.1.0 : Novembre 2005● 5.2.0 : Novembre 2006

– 5.2.6 : Mai 2008 ; 5.2.7 : Décembre 2008 – bientôt 5.2.8 ?● Grand nombre de nouveautés attendues !

● Pas au point de changer de version majeure ?● PHP 6 est encore loin !

● PHP 5.3● Versions « testables » : printemps 2008● 1ère version alpha : 1er août 2008

Page 5: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

« Pack » d'exemples / tests● Série d'exemples et de tests

● Couvrant la quasi-totalité des nouveautés de PHP 5.3– Plus en détails que ce que je présenterai ici

● Téléchargeable depuis mon blog– http://blog.pascal-martin.fr/public/php-5.3/php-5.3-exemples.tar.bz2

– Mis à jour quand j'effectue de nouveaux test

Page 6: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

E_DEPRECATED● Nouveau niveau de rapport d'erreurs

● « E_DEPRECATED »● Objectif

– Identifier les fonctionnalités dépréciées– Qui seront probablement supprimées pour une prochaine

version● Pour PHP 6, typiquement

Page 7: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Constante magique __DIR__● Travail par rapport au répertoire où se trouve un

fichier● Inclusion d'un fichier .php

require_once(dirname(__FILE__) . '/../mon-fichier.php');

● Long à écrire, risque de fautes de frappe● Évalué à l'exécution

● PHP 5.3 : nouvelle constante magique● __DIR__

require_once(__DIR__ . '/../mon-fichier.php');

● Évalué à la compilation– Plus rapide à exécuter

● Et plus court à écrire

Page 8: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Saut inconditionnel : « goto »● Ajout de l'instruction « goto »

● Et de la notion de « label » (étiquette)echo '<p>a</p>';

goto c;echo '<p>b</p>';

c:echo '<p>c</p>';

● A noter● Pas de saut à l'intérieur d'une boucle / d'un switch● Autorisé à l'intérieur d'un if / else (utilité ?)● Pas de « goto $label; »● Instructions « break » et « continue » non modifiées

– Sortie de boucles imbriquées : « break 2; »– Pas de « break label; »

Page 9: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

LSB – Late Static Binding● PHP 5.2 : résolution statique à la compilationclass Vehicule { public static function a() { echo '<pre>' . __CLASS__ . '</pre>';} // Etape 3 : "Vehicule" public static function b() {self::a();} // Etape 2 : PHP 5.2 : "self"}class Voiture extends Vehicule { public static function a() {echo '<pre>' . __CLASS__ . '</pre>';}}Voiture::b(); // Etape 1

● PHP 5.3 : résolution statique « tardive »class Vehicule { public static function a() {echo '<pre>' . __CLASS__ . '</pre>';} public static function b() {static::a();} // Etape 2 : PHP 5.3 : LSB : "static"}class Voiture extends Vehicule { public static function a() { echo '<pre>' . __CLASS__ . '</pre>';} // Etape 3 : "Voiture"}Voiture::b(); // Etape 1

● Conservation de « self » et de son comportement

Page 10: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Appels statiques dynamiquesclass A { public static function methodeStatique($p1) { echo "<pre>A::methodeStatique($p1)</pre>"; } public function methode($p1) { echo "<pre>A::method($p1)</pre>"; }}

$className = 'A';$methodName = 'methode';$obj = new $className();$obj->$methodName('param1');// A::methode(param1)

$staticMethodName = 'methodeStatique';$className::$staticMethodName('param1');// A::methodeStatique(param1)

● PHP <= 5.2● Parse Error

● PHP 5.3● Appels statiques

dynamiques possibles

● A noter aussi● Ajout méthode magique « __callStatic »● Equivalent statique de « __call »

Page 11: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Syntaxe NOWDOC● Depuis PHP 4, syntaxe Heredoc$str = <<<END_OF_STRING<h1>Hello, world!</h1><div> Démonstration syntaxe <strong>$syntaxe</strong></div>END_OF_STRING;

● PHP 5.3 ajoute la syntaxe Nowdoc● Simple-quotes : pas d'interpolation de variables

$str = <<<'END_OF_STRING'<h1>Hello, world!</h1><div> Démonstration syntaxe <strong>$syntaxe</strong></div>END_OF_STRING;

● Doubles-quotes : Identique à Heredoc– Plus consistant avec Nowdoc simple-quotes– Mais : deux façons de faire la même chose

Page 12: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

GC – Garbage Collector – 1● PHP <= 5.2

● Références cycliques● => non libération de la mémoire

● PHP 5.3 : Ajout Garbage Collector● Fonctions « gc_* »● Activé par défaut

– Mais désactivable● Intérêt

● Faciliter le développement de grosses applications– Batchs– Applications basées sur des frameworks– PHP-GTK ?

● PHP ne sert plus que pour du Web / des scripts légers

Page 13: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

GC – Garbage Collector – 2● Rouge : Sans Garbage Collector● Bleu : Avec Garbage Collector

Page 14: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Lambdas et Closures – 1● Ceux qui ont fait du Javascript connaitront !

● PHP 5.3 introduit les « Lambdas » et « Closures »● Fonction anonyme

● Création$func = function () { echo "<p>Hello, World!</p>";};

● Appel$func();

● Fonction anonyme avec paramètre(s)$func = function ($param) { echo "<p>Hello, $param!</p>";};$func('there');

● Appel possible via call_user_func[_array]● Fonctions « anonymes », mais fonctions quand même !

Page 15: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Lambdas et Closures – 2● Exemple évident

● Utilisation d'une fonction anonyme comme fonction de callback

$data = array('sacré coeur', 'champs elysée', 'tour eiffel');$output = array_map(function ($item) { return ucwords($item); }, $data);var_dump($output);

array 0 => string 'Sacré Coeur' (length=12) 1 => string 'Champs Elysée' (length=14) 2 => string 'Tour Eiffel' (length=11)

● Plus pratique que create_function !– Plus rapide à l'exécution– Plus lisible – coloration syntaxique !

● Évite la création de fonctions nommées, à usage unique

Page 16: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Lambdas et Closures – 3● « use » : Import d'une variable externe$var = 'World';$func1 = function () { echo "<p>Hello, $var!</p>";};$func2 = function () use ($var) { echo "<p>Hello, $var!</p>";};

$func1(); // Notice: Undefined variable: var … => Hello, !$func2(); // Hello, World!

● Import en lecture-seule● Ou par référence : ré-utilisation de « & »

– Import en lecture-écriture$func2 = function () use (& $var) { echo "<p>Début 2 : $var</p>"; $var = 2; echo "<p>Fin 2 : $var</p>";};

Page 17: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Lambdas et Closures – 4● Création d'une closure$func = function ($arg) { $compteur = $arg; // Copie privée, en lecture seule return function () use ($compteur) { return ++$compteur; };};$a1 = $func(10);$a2 = $func(50);

echo 'a1 : ' . $a1() . "\n"; // 11echo 'a2 : ' . $a2() . "\n"; // 51echo 'a1 : ' . $a1() . "\n"; // 11echo 'a2 : ' . $a2() . "\n"; // 51echo 'a1 : ' . $a1() . "\n"; // 11echo 'a2 : ' . $a2() . "\n"; // 51

● Fonction interne force la conservation de la valeur de $compteur● C'est le principe même d'une closure !

– Après Javascript, c'est maintenant possible en PHP !

Page 18: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Lambdas et Closures – 5● Même chose, en lecture-écriture$func = function ($arg) { $compteur = $arg; // Copie privée, en lecture / écriture return function () use (& $compteur) { return ++$compteur; };};$a1 = $func(10);$a2 = $func(50);

echo 'a1 : ' . $a1() . "\n"; // 11echo 'a2 : ' . $a2() . "\n"; // 51echo 'a1 : ' . $a1() . "\n"; // 12echo 'a2 : ' . $a2() . "\n"; // 52echo 'a1 : ' . $a1() . "\n"; // 13echo 'a2 : ' . $a2() . "\n"; // 53

● $compteur conservée par la fonction interne● $compteur importée par référence● Accessible en lecture-écriture, donc

– Comme les closures de Javascript

Page 19: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

intl – Internationalisation – 1● Extension « intl » incluse en standard

● Option –enable-intl● Objectif : faciliter l'internationalisation (« i18n ») et la

localisation (« l10n ») d'applications– Afficher une date sur un site multi-lingue :

« 31/12/2008 » ? « 2008-31-12 » ? « 12/31/2008 » ?– Et pour une monnaie : « 1,024.12 € » ? « $ 1.024,12 » ?

● Plusieurs nouvelles classes● IntlDateFormatter● NumberFormatter● Locale● Collator

Page 20: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Intl – Internationalisation – 2● Nombres / monnaiesecho NumberFormatter::create('fr_FR', NumberFormatter::CURRENCY)->format(123456789.987654) . "\n";echo NumberFormatter::create('en_US', NumberFormatter::CURRENCY)->format(123456789.987654) . "\n";

123 456 789,99 € $123,456,789.99

● Datesecho IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time()) . "\n";echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";

jeudi 9 octobre 2008 04:21:10 GMT+00:00 2008年 10月 9 日星期四 上午 04時 21分 10 秒 GMT+00:00

● Messages$format_FR = 'Le {0,date,full} à {1,time,short}, {2,number,integer} pommes coûtent {3,number,currency}';$data = array(time(), time(), 5, 3.1415);echo MessageFormatter::formatMessage('fr_FR', $format_FR, $data) . "\n";

Le jeudi 9 octobre 2008 à 04:31, 5 pommes coûtent 3,14 €

Page 21: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Manipulation de datesdate_default_timezone_set('Europe/Paris');

● PHP >= 4.x$ts1 = strtotime('25/04/2008 13:30:00');var_dump(date('Y-m-d', $ts1));

string '1970-01-01' (length=10)

● PHP >= 5.1.0$date = date_create('25/04/2008 13:30:00');var_dump($date);

boolean false

● PHP >= 5.3$date = date_create_from_format('d/m/Y H:i:s', '25/04/2008 13:30:00');var_dump($date->format('Y-m-d'));

string '2008-04-25' (length=10)

● Nous sommes français / francophones● Non, nos utilisateurs ne connaissent pas le format de

dates américain !

Page 22: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Opérateur ? : revu● Opérateur ternaire ; syntaxe parfois redondante$blah = ($identifiant ? $identifiant : 'Erreur');

● PHP 5.3 : nouvelle possibilité d'écriture● condition ? : valeur si faux● Si « condition » est vraie, retour du résultat de son

évaluation– Sans dupliquer son écriture

● Sinon, retour de la valeur de droite

var_dump(true ?: false); // bool(true)var_dump(true ? : false); // bool(true) (fonctionne avec des ' ' entre ? et :)var_dump(false ?: true); // bool(true)var_dump('glop' ?: ''); // string(4) "glop"var_dump(strlen('glop') ?: strlen('')); // int(4)var_dump(isset($a) ?: 10); // int(10) ($a non défini)$b = 'Hello, World!'; var_dump(isset($b) ?: 10); unset($b); // bool(true)var_dump('' ?: isset($a)); // bool(false) ($a non défini ; 2 valeurs fausses)

Page 23: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

mysqlnd● Bibliothèque spécialisée d'interface PHP MySQL↔

● Conçue spécialement pour PHP ; intégrée à PHP– Perspectives d'évolution– MAJ / correctifs en même temps que PHP

● Principaux avantages● Plus rapide (20 à 30% plus rapide que libmysql)● Amélioration de l'utilisation mémoire● Fonctionnalités supplémentaires (statistiques)● Driver intégré : pas de dépendance externe

● Pour le développeur● Aucune modification : choix effectué à la compilation

de PHP● Brique « en-dessous » de mysql, mysqli, PDO

Page 24: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Phar : PHP Archive● « PHP Archive »

● Équivalent des .jar du monde JAVA● Regroupement de plusieurs fichiers en un seul● Intégré à PHP 5.3 : indépendant de PEAR / PECL

● Manipulation de fichiers Phar● Ajout d'un stream « phar »● Inclusion de fichiers packagés au sein d'une Phar

– Y compris d'un fichier vers l'autre● Exemples de possibilités

● Distribution d'une application entière en un seul fichier– Pour les application CLI, et pour les applications Web !– Comme installeur ?

● Framework packagé en un seul fichier ?

Page 25: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Ajouts à la SPL – 1● Itérateurs au niveau du système de fichiers

● FileSystemIterator, GlobIterator$motif = __DIR__ . '/*.php';$fichiers = new GlobIterator($motif);foreach ($fichiers as $fichier) { // $fichier est une instance de SplFileInfo echo $fichier->getPathname() . ' : ' . number_format($fichier->getSize(), 0, '.', ',') . " octets\n";}

/home/php/php53/spl/FilesystemIterator-5.3-1.php : 1,540 octets/home/php/php53/spl/GlobIterator-5.3-1.php : 296 octets/home/php/php53/spl/SplDoublyLinkedList-5.3-1.php : 138 octets/home/php/php53/spl/SplMaxHeap-5.3-1.php : 179 octets/home/php/php53/spl/SplMinHeap-5.3-1.php : 179 octets/home/php/php53/spl/SplMinHeap-5.3-2.php : 494 octets/home/php/php53/spl/SplMinHeap-5.3-3.php : 883 octets/home/php/php53/spl/SplPriorityQueue-5.3-1.php : 301 octets/home/php/php53/spl/SplQueue-5.3-1.php : 755 octets/home/php/php53/spl/SplStack-5.3-1.php : 718 octets

Page 26: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Ajouts à la SPL – 2● Nouvelles structures de données

● SplStack, SplQueue, SplPriorityQueue, SplDoublyLinkedList, SplMinHeap, SplMaxHeap, …

● Attention : deux modes de fonctionnement différents– Classes héritant de SplDoublyLinkedList ne se vident pas

lors du parcours– Classes héritant de SplHeap se vident lors du parcours

$q = new SplPriorityQueue();$q->setExtractFlags(SplPriorityQueue::EXTR_BOTH);$q->insert('Mr A', 10);$q->insert('Mr B', 30);$q->insert('Mr C', -1);$q->insert('Mr D', 5);foreach ($q as $element) { var_dump($element); // /!\ le parcours enlève les éléments de la queue !}

array 'data' => string 'Mr B' (length=4) 'priority' => int 30array 'data' => string 'Mr A' (length=4) 'priority' => int 10array 'data' => string 'Mr D' (length=4) 'priority' => int 5array 'data' => string 'Mr C' (length=4) 'priority' => int -1

Page 27: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 1● Espaces de noms, « namespace »

● Fonctionnalité très attendue● Grand sujet de débats / discussions enflammées● Raison de l'alpha3 et des reports de sa sortie

● Pourquoi des namespaces ?● Noms de classes trop longs● Conflits

– Redéfinition de classes, de fonctions– Dans les bibliothèques

● Séparateur de namespace : « \ »● ET PAS « :: » !● Contrairement à ce qui existait en versions <= alpha2

Page 28: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 2● Déclaration d'un namespace

● Instruction « namespace » + nom de l'espace● Tout ce qui suit, dans le fichier, est dans l'espace de

noms– Fonctions, constantes, classes

<?phpnamespace LIB;function a() { var_dump('LIB\a');}function b() { var_dump('LIB\b');}

● Utilisation (autre fichier)<?phprequire_once(__DIR__ . '/lib.php');LIB\a();LIB\b();

Page 29: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 3● Attention

● « namespace » : 1ère instruction d'un fichier !– Sinon => Fatal Error

● « \ » est aussi le caractère d'échappement– Dans les chaînes de caractères

● Entre double-quotes, surtout● Pour les instanciations dynamiques de classes

● Espaces de noms : contenu entre accolades● C'est possible ;-)

<?phpnamespace LIB { function a() { var_dump('LIB\a'); } function b() { var_dump('LIB\b'); }}

Page 30: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 4● Organisation des fichiers

● Espace de noms sur plusieurs fichiers– Frameworks, bibliothèques : plusieurs classes

● Plusieurs espaces de noms dans un même fichier– Fusion de plusieurs fichiers PHP en un seul

● Noms composés● « \ » peut être inclus dans un nom de namespace

namespace Mon\NS\A;

● Nouvelle constante magique● __NAMESPACE__

– Nom de l'espace de noms où elle est utilisée– Chaîne vide en dehors de tout namespace

● Espace de noms « global » : « \ »

Page 31: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 5● Import d'un espace de noms : « use … as … »

● Défini un aliasuse NAMESPACE_AU_NOM_TRES_LONG as A;

$a = new A\ClassA();

$a = new NAMESPACE_AU_NOM_TRES_LONG\ClassA();

● Les deux écriture reviennent au même, en interne● Même chose avec un NS au nom composé● use peut aussi permettre de déclarer un alias de classe

use NS\NOM\COMPOSE\ClassA as MyClass;

● NS en plusieurs parties : use sans asuse NS\NOM\COMPOSE;

● Défini « COMPOSE » comme alias de « NS\NOM\COMPOSE »● Attention : uniquement si nom composé !

Page 32: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Espaces de noms – 6● Autoloading

● Nom de l'espace de noms est compris dans le nom interne de la classe– Si fichiers bien organisés => pas de problème

● Type-hinting● Résolution

● En premier, chargement depuis le NS courant● Puis

– Pour les classes : autoload– Pour les fonctions / constantes : chargement depuis

l'espace de noms global● Pas de chargement depuis l'espace de noms global

pour les classes !

Page 33: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Divers● getopt

● Support natif des options longues, sous tous OS● fileinfo

● Déterminer le type d'un fichier● Configuration par répertoire, par fichier .ini

● En mode CGI uniquement● Profiling XLST● Nouvelles fonctions SSL

● Objectif : implémentation d'openId en PHP● MAJ SQLite● Plus de tests unitaires automatisés● Corrections de bugs

Page 34: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Performances● Nombreuses améliorations orientées performances

● Malgré les nouveautés● Gain de 10 à 20% pour des applications

« répandues »● Drupal, TYPO3, Wordpress, ...

● Récapitulatif● PHP 4

– Le plus lent● PHP 5.3

– Plus rapide que toutes les autresversions 5.x

● PHP 6– Par curiosité

Page 35: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Conclusion : Le futur est là...● Nouveautés et améliorations

● Plein● Potentiellement intéressantes !

● Pas de révolution● Pas / peu de cassage de fonctionnalités existantes● Théoriquement, passage de 5.2.x à 5.3 peu risqué

– Testez, Expérimentez !– Bonnes habitudes : à prendre !– Mauvaises habitudes : pas encore là !– Faites des retours : une des forces de PHP = communauté !

● Support par les IDE / outils● Pas encore :-(● Ou pas suffisamment...

Page 36: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

… ou presque !● Version alpha3 tout juste sortie

● Fonctionnalités figées● Date pour la version finale ?

● Printemps 2009 ? Plus tard ?● « Demandez à Lukas Smith » (conf. de 16h30)

● PHP 5.3 et projets « réels » ?● Zend Framework 2.0 ? Doctrine 2.0 ?● Et pour nos projets ?● Et pour nos clients / pour vous ?

● PHP 5.et-demie ?● PHP 6 n'est toujours pas pour demain...● … Nombreuses améliorations rapportées en PHP 5.3 !

Page 37: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Questions ?

Page 38: PHP 5.3 : les nouveautés du futur si proche

Forum PHP 2008

Nouveautés PHP 5.3 – Pascal MARTIN

Merci à tous,

Bon appétit !


Recommended