• Ce blog — désormais archivé — est en lecture seule.
    Nouveau blog: William Durand.

Symfony live 2011 – Journée 1

Symfony CMF

Les conférenciers commencent par bâcher Drupal, en gros ce n’est pas bon sauf pour les utilisateurs finaux.

Ensuite on passe au CMF : Content Management Framework. Qu’est-ce dont ?

  • Une boite à outils pour créer son propre CMS.
  • Pas un truc qui rassemble tout mais un truc qui s’améliore avec le temps.
  • Diem, Apostrophe, Sympal construis sur la même base.

Et le projet Symfony CMF ?

  • Environ 100 personnes dans la mailing-list.
  • +10 par mois.
  • La plupart des décisions clés sont prises sur un forum public.
  • Soutenu par des entreprises tels : KnpLas, Theodo, ideato, Liip, OpenThink Labs, …

Au niveau technique, les données d’un CMS ne sont pas très gérables donc utilisation du NoSQL, pas de SGBDR. Certains CMs organisent des données en arbre, on peut utiliser : Graph DBs.

Pour Symfony CMF, on devrait avoir :

  • Versionning du contenu
  • Gestion fine des accès
  • Doctrine PHPCR ODM
  • Jackalope (Java)
  • Utilisation de PHPCR, une interface qui permet aux devs PHP de garder leurs habitudes (exemple : tableaux associatifs qui n’existe pas en Java). Ainsi, on ne discute pas avec Jackalope.
  • PHPCR/JCR ne sera pas utilisé pour tout sauvegarder. Les données « web », les commandes d’un site e-commerce (par exemple) ou ses stocks iront dans un SGBDR. Idem pour l’agrégation, mieux supportée et faite dans un SGBDR.

Adresse du projet : Symfony CMF.

Restful avec symfony et Symfony2

Définition/Explications d’un Web Service :

  • Développement d’APIs/Webservices
  • Communication inter-langages/inter-logiciels
  • Fournisseur : service
  • Agent : client
  • Deux types : REST ou WS-*

Web services en Symfony 1

  • Utilisation du système de routing
  • Utilisation d’un serializer qui n’est pas présent dans symfony ou Zend.
  • Il existe cependant un Exporter Doctrine.
  • En json : json_encode($object->toArray()) ;

Cependant, comment valider les entrées ? La présence du payload ? Hé bien en utilisant les validateurs de symfony.

Abordons la partie sécurité (accès, rythme, fréquence (throtting)) :

  • Autentification naïve par preExecute, ajouter un paramètre (une clé d’API par exemple) mais ce n’est pas terrible si quelqu’un trouve cette clé.
  • Approche OAuth plus que conseillée.
  • Throtting : utiliser Apache : mod_cband

Symfony2, on fait comment ?

Export des routes sf2 dans Apache2 :

    php app/console router:dump-apache

Il est conseillé de se servir du FrameworkExtraBundle pour le paramConverter !

En Symfony2, on a le Serializer component :

  • normalizer ; CustomNormalizer
  • GetSetMethodNormalizer : renvoit un tableau clé/valeur PHP
  • Encoder : JsonEncoder, XmlEncoder
    $serializer->addNormalizer(new CustomNormalizer()) ;

Varnish, HttpCache déclenchés avant l’initialisation du framework. Validation du cache :

    $response->setETag() ;
    if($response->isNotModified())
    {
         return ; //304
    }
    else
    {
        $response->setContent(contenu) ; 
        return $response ;
    }

Il est conseillé d’utiliser le Cache HTTP pour les Web Services pour éviter, par exemple, de parser les annotations Doctrine à chaque requête ! Enfin le supra projet, fil conducteur lors de la présentation : Symfpony :-D

Contributing with Git

A mon sens, la meilleure conférence des deux jours, présentée par @chacon. Déjà, voici quelques liens :

1991-2002 : pas de VCS pour le projet Linux.

Git vs SVN (rapide)

SVN : un log par fichier au premier commit, ensuite un log supplémentaire par modification.

Git : checksum de chaque fichier. Au comimit, enregistre un « manifest » avec les checksums des fichiers ajoutés. Au commit suivant, il recrée un checksum. Au renommage, il change juste le nom du fichier à côté du checksum dans le manifest. A la copie d’un fichier, il rajoute juste le fichier dans le manifest mais. => Liste chaînée de « snapshots » (checksums).

git diff fait un diff avec les snapshots concernés, pas avec tout.

Faire de beaux/bons commits :

  • Attention aux espaces (blancs)
  • git diff –check : pour vérifier avant de commiter
  • git add –patch : commit sélectif
  • git-gui
  • Git Tower
  • git-log –grep=xxx
  • short summary of changes

Branches

  • créer une branche pour toute nouvelle modification (majeure). Ne pas travailler sur Master.

Repository central

  • Premier arrivé, Premier Servi
  • git push
  • git fetch (d’abord)
  • puis : git merge

Merge

  • can undo the merge
  • more data for analysis later
  • easy continuous re-integration

Rebase

  • « prettier »
  • git pull –rebase : sinon pull fetch et merge
  • git merge –no-ff : no fast forward, gives more information

Processus de travail en groupe

  • Coder
  • git fetch
  • git log origin/master ^master
  • git rebase origin/master

Mailing List Contributor Workflow

  • git checkout my-branch
  • git format-patch –m origin/aster ⇒ xxxx.patch (email format patch)
  • git send-mail *.patch : configure your mail in ~/.gitconfig

Lorsqu’on reçoit le mail : ** git am xxx.patch

Repo personnel

Requesting a Pull : make your branch up to date ⇒ push to a named branch ⇒ contact the author

  • git remote add upstream http://xxx:yyy.git
  • git rebase upstream/master
  • git push origin my_feature
  • git checkout –b my_feature
  • commit, commit, …
  • git fetch upstream
  • git rebase upstream/master
  • git request-pull upstream/master origin

Accepting a Pull Request : git remote add scott http://xxx.yyy.git ⇒ git fetch scott ⇒ git merge scott/my_feature

Ou : git pull http://xxx:yyy.git my_feature

Symfony2 : 30 astuces et bonnes pratiques

  • Organisation plus libre
  • Application : une seule ⇒ système de sécurité permet de cloisonner efficacement
  • Pour utiliser plusieurs applications, on peut les nommer App1, App2, … Mais normalement on a besoin que d’une seule app’
  • Bundles ⇒ implémentation une fonctionnalité spécifique
  • Isoler ses classes métiers : Entity/ ou Business/
  • Utiliser ses propres namespaces…
  • Virer les bundles inutiles.
  • On peut définir des variables d’environnement : SYMFONY__XXX ⇒ Depuis un VHOST Apache2
  • Format .ini : pour paramètrage de l’application par un non-technicien.
  • Twig : XSS protection en automatique et mode sandbox
  • Utiliser le router Apache
  • Assets : Assetic

 Surcharge des pages d’erreurs

  • Créer un service (écouter core.exception, déclarer le service et créer une nouvelle classe).
  • Faire un template : on crée un app/FrameworkBundle/xxx.error.html.twig
  • Utiliser un contrôleur qui implémente la méthode showAction():
    framework :
        exception_controller : MyNS\MyBundle\MyExceptionController

Attention : les contrôleurs ne doivent pas hériter de la classe Controller du FrameworkBundle. Il ne faut pas créé de dépendances ! (c’est presque inutile). Donc les contrôleurs sont de simples classes PHP, sans dépendances. Il vaut mieux hériter du ContainerAware ou alors utiliser des services en tant que contrôleurs.

Twig

Assets ⇒ utiliser les blocks Twig Existence de macros pour Twig.

Injection de dépendances

  • classes utilisables sans Container
  • utiliser le format XML
  • A utiliser pour des objets qui ont une portée globale ou pour des objets « uniques ».
  • Ne pas utiliser l’injecteur pour des objets métiers.
  • Ne pas injecter le container dans les objets (lol) : injecter le service nécessaire !

Sécurité

  • déporter la configuration
  • spliter la configuration et l’importer

Profiler

  • utilisable en production
    framework :
        profiler :  { only_exceptions : true }
  • Génère un fichier.
  • Importer le dump dans le profiler.
  • Utiliser les annotations

FrameworkExtraBundle

  • configuration du routing
  • configuration des méthodes http
  • template à utiliser
  • cache http
  • convertir des paramètres de requête

 Performances

  • autoloading : compile les classes, attention à ne pas trop charger de classes
  • cache warmer : préparation du cache
  • pré-compilation du template, DI, routing, autoloading
  • On peut ajouter nos propres services.

Vérifier la configuration Doctrine

    php doctrine :ensure-production –settings

RabbitMQ

Why Messaging ?

The user

Upload picture, don’t want to wait till the images resizes. Notify user friends when she uploads a new image.

The sysadmin

Save my bandwith.

 The developer

Call the PHP from Python.

RabbitMQ & AMQP

Advanced Message Queuing Protocol * Interoperability * Open protocol * Binary protocol * AMQP Model : exchanges, message queues, bindings, rules for binding them * AMQP Wire Format : Functional layer, Message flow

 Scénario : batch

Requirements :

  • Generate XML
  • Distribution over a cluster
  • Elasticity
  • No code changes

Design : Enquue job -> generate xml -> direct exchnange -> desc queue -> Worker 1/Worker 2/Worker 3

    AMQPConnection()
    AMQPMessage()

Integration dans Symfony

RabbitMQ Bundle

Symfony2 Forms

Bon là, je n’ai pas pris de notes, ce fût une lecture de la documentation plus ou moins. J’ai tout de même noté deux infos :

  • L’astuce Twig pour rendre le reste des éléments d’un formulaire:
    {{ form.rest }}
  • Et le type : « repeated » to repeat twice a field (password)

Voilà pour cette première journée, plutôt longue mais très intéressante.

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz
Publié dans SfLive, symfony | Mots-clefs : , , | Commentaires fermés

Symfony live 2011

J’y serai !

Voilà en gros tout ce que j’avais à dire dans cet article :-) Pour étoffer un peu, Symfony Live c’est la conférence tendance pour les gens qui aiment [s|S]ymfony, qui aiment PHP (pourquoi pas ?) et qui aiment bien discuter et écouter de bonnes conférences. C’est organisé par Sensio Labs, agence que l’on ne présente plus, ça se déroule les 3 et 4 mars à Paris (Cité Internationale Universitaire) et c’est à peu près tout ce qu’il faut savoir.

Le vendredi soir, il y aura un meetup Github je ne sais trop où, comme d’hab’ je vais essayer de pas me perdre dans Paris (d’ailleurs j’espère que mon stage me permettra également de me repérer un peu dans Paris…). Il y aura des conférences doublées donc comme au Forum PHP, il faudra faire des choix. J’ai fait quelques choix, les voici :

Jeudi

10h30-11h20 : Je ne sais pas…

11h30-12h20 : Restful avec symfony et Symfony2 par deux compères de CleverAge : Xavier Lacot et Damien Alexandre.

13h30-14h20 : Contributing with Git : Reducing the frictions of Open Source collaboration with the Git VCS par Scott Chacon (ce mec travaille chez Github !!)

14h30-15h20 : je ne sais pas.

15h30-16h20 : je ne sais pas non plus.

16h30-17h20 : Leveraging Symfony2 Forms par Bernhard Schussek (histoire de pas galérer sur les forms…)

Vendredi

8h30-9h20 : Symfony2 – from the trenches par Lukas Kahwe Smith et Jonathan Wage (le titre déchirait !)

9h30-10h20 : Introducing Assetic: Asset Management for PHP 5.3 par Kris Wallsmith.

10h30-11h20 : HTTP Cache par dieu Fabien Potencier. (Et là, ce fût le plus gros dilemme…. Je voulais tellement voir cette conférence sur Solr :-( )

11h30-12h20 : Varnish Cache and you par Kristian Lyngstøl.

13h30-14h20 : Symfony2 en pièces détachées ! par Hugo Hamon. La conf’ sur Twig semble sympa mais je pense qu’il y a plus à apprendre de l’ami Hugo.

14h30-15h20 : Doctrine in the Real World par Jonathan Wage (encore !)

15h30-16h20 : Jeux sociaux, Symfony et Cloud Computing par Laurent Letourmy (je les avais zappé lors du Forum PHP, je me rattrape ici).

16h30-17h20 : Iscool Story par Alexandre Rodière et Bertrand Tornil (Weka again).

 

Voilà, ce planning est susceptible de changer mais certainement pas trop. Je ferai comme d’hab’ un résumé de chaque journée et pour chaque conférence vue.

A demain pour certain ;-)

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz
Publié dans Ma vie, symfony | Mots-clefs : , , , | Commentaires fermés

Mise en place d’un serveur Git over HTTP

Bonjour,

Cela fait longtemps que je n’ai pas écrit ici. En fait, je partage mes récentes aventures sur le blog de ma société Bazinga.

Dernier article en date sur la mise en oeuvre d’un serveur Git accessible via HTTP : http://www.bazingaweb.fr/blog/fr/mise-en-place-d-un-serveur-git-over-http.

Enjoy :-)

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz
Publié dans Boulot, Sysadmin | Commentaires fermés

Sur les starting-blocks pour 2011 !

Bonjour,

J-5 avant la nouvelle année, bonnes fêtes, bonne année, toussa… Bref, l’envie d’écrire me pousse à faire un petit récap’ sur 2010, un genre d’auto-évaluation de moi-même donc pour ceux qui veulent du technique il n’y en aura pas cette fois-ci, je vais parler de ma vie…

Passé : 2010

2010 a été une année très riche, autant sur le plan personnel que professionnel. Je suis depuis près d’un an sur un très gros contrat qui me permet de voir et de faire pleins de choses intéressantes et également de voir ce que donne la conduite d’un projet seul. Effectivement, bosser sur des missions courtes c’est sympa mais rester seul maître à bord sur un projet d’une année c’est… long, éprouvant, fatiguant moralement et physiquement mais c’est à faire ! Autant dire que j’ai la vie bien occupée et que je ne manque pas de travail :-)

Grâce à cela, j’ai amélioré mes compétences autour du développement : automatisation, industrialisation, déploiement, feedback, … Vous avez pu le lire (ou pas), j’ai bien apprécié de mettre en oeuvre des tas d’outils qui me simplifient la vie au quotidien. Dans la foulée, j’ai pu convertir pas mal de gens à cette façon de travailler :-P .

Parallèlement à cela : l’école, l’entreprise, les rencontres. Plus j’avance, plus je vois ce que l’école veut nous enseigner. Outre l’aspect scolaire (maths, électronique, info) on apprend à se poser, à réfléchir à un problème posé et à se servir des bons outils. C’est pile-poil ce que je vis dans mon activité de développeur indépendant. Cette activité est en voie de transformation parce que je devrais changer de forme juridique et me développer avec un associé. Pour le moment, le dossier est stoppé mais beaucoup d’idées sont sur ma TODO liste. Enfin, pas mal de contacts cette année, d’excellentes rencontres aussi qui m’ont permis de me sentir bien et de passer une bonne année (surtout que c’était accompagné de Guiness alors ça aide…).

Présent : fin 2010

Et bien oui, je peux évoquer cette fin 2010. Très surpris, je n’ai pas eu à chercher de stage. J’ai été sollicité par un bon nombre d’entreprises (petites ou grandes là n’est pas la question) dont plusieurs que j’avais placé tout en haut de ma wishlist. Je reste donc persuadé que bosser à outrance pour ma micro-boite est une bonne solution tout comme le fait d’apprendre encore et encore.

C’est pour cela que depuis septembre, je bosse sur un projet d’application mobile. Je n’avais jamais eu d’expérience là-dessus et j’ai pu négocié une entente avec un client passé pour bosser sur leur application. J’ai eu en charge d’amener les idées, les exigences liées à un projet mobile, l’analyse des besoins et fonctionnalités, les mockups et actuellement j’en suis à la phase de développement. C’est un projet iPhone en Objective-C. Bon je n’y connaissais rien mais c’est pas bien dur et il faut avouer que l’IDE XCode est pas mal fait. Vim+Linux manque quand même mais bon… J’essayerai d’écrire un peu sur le développement iPhone mais pour l’instant je n’ai pas d’inspiration.

Futur : 2011

Le futur c’est quoi ? Un stage de 6 mois déjà. Où donc ? Et bien… je ne l’ai jamais diffusé mais je pense que c’est le moment : il s’agit de l’entreprise e-TF1 :-D Bon je suis un peu super-méga content de bosser là-bas. J’avoue que je n’étais pas préparé à recevoir un coup de téléphone du directeur technique en personne, ce qui s’est fait ressentir au premier entretien téléphonique… Mais le second était bien mieux et le troisième m’annonçait la bonne nouvelle ! Je pars donc sur Paris (arf… mon Auvergne) dès avril et pour 6 mois. J’appréhende un peu mais tout devrait bien se passer, j’ai déjà rencontré deux personnes de l’entreprise lors du forum PHP et ils étaient très accessibles.

C’est le premier gros objectif de 2011 avec une bonne remise à niveau sur l’ORM PHP Propel dès janvier pour ne pas passer pour un pingouin auprès du lead developer du projet qui sera *juste* mon big boss… Les autres sont de me mettre à Ruby On Rails pour voir puis à Django pour voir aussi. Pour cela, un petit break ne devrait pas faire de mal, je pourrais regarder un peu plus Symfony2. Par ailleurs, j’ai d’autres plans en tête mais ceux-ci resteront secrets pour le moment. Enfin, le dernier objectif est de terminer mon dossier d’entreprise et de finir de boucler la viabilité de celui-ci. Voilà pour les nouvelles ;-)

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz
Publié dans Non classé | Commentaires fermés

#forumPHP : résumé de ma seconde journée

Second jour au forum PHP, très enrichissant. Voici le résumé de ma journée, un peu mieux synthétisé que la première journée.

Déboguer son code avec Xdebug

Présenté par Derick Rethans

L’auteur de l’excellent Xdebug fait une présentation des possibilités de l’outil. On y apprend la possibilité de renvoyer les fichiers défaillants dans vim directement, configurer l’affichage de la trace d’exécution, … Mais surtout un paramètre que je ne connaissais pas : xdebug.scream qui permet d’ignorer les ‘@’ avant les fonctions (le ‘@’ cache initialement les erreurs et avertissements). C’est un peu une tuerie pour le développeur car pas mal de projets (notamment certains CMS) utilisent cette astuce pour cacher la misère :-D

Xdebug permet de profiler son application et génère un fichier  exploitable soit avec un fichier PHP fourni sur le site de Xebug, soit avec KCacheGrind soit avec WebGrind (comme son nom l’indique c’est une application web).

Ensuite, Derick nous parle de la couverture de code avec son outil. Puis, grosse surprise (pour moi), la possibilité de déboguer pas à pas son application PHP. On utilise pour cela GTK DBGp ou des plugins Firefox/Chrome. Voilà encore quelque chose que l’on pouvait reprocher à PHP et qui est résorbé :-)

Mon avis : Très bonne conférence, très bon outil et quelques astuces à tester. Parfait donc.

Un site web performant, tout est dans le réseau et le navigateur

Présenté par Eric Daspet

Cette conférence m’est familière, je suis Eric depuis longtemps et je suis également très sensible aux problématiques de performances, en particulier au niveau frontend. C’est l’objet de cette conférence. On part sur un constat clair : tout se joue lors du chargement, peut importe ce qu’il y a côté backend (serveur et application) qui représente 5% du chargement total d’une page. Voici quelques données sur l’importance des performances :

  • Amazon : latence +100ms : -1% de ventes
  • Google : chargement +500ms : trafic -20%
  • Yahoo : chargement +400ms : abandon +5 à 9%
  • Bing : chargement +1s : revenu pub -2,8%
  • Mozilla : chargement -2 ,2s : transformation +15%

Ce qui nous fait perdre du temps, c’est la latence et le nombre de téléchargements. La majeure partie du temps, le navigateur attend. Pour bien agir, voici ce qu’on peut faire :

  • Fusion JS, CSS
  • Fusion images : sprites CSS
  • CDN : akamai
  • URI en data, documents mhtml, archives JAR
  • Inline des images
  • Chargements parallèles : domaines multiples
  • Connexions persistantes : KeepAlive http (10 à 20% de gain)

Mais aussi :

  • compression http
  • minimisation des contenus (espaces blancs)
  • recompression d’images (avec et sans pertes)
  • contenus pus petits
  • Chargement différé via AJAX
  • Ordonner et prioriser le contenu
  • Envoyer immédiatement les blocs sans calcul serveur
  • Chargement asynchrone du JS ou en bas de page
  • Accélérer le rendu
  • Utiliser du cache http
  • Pré charger des contenus à l’avance
  • Optimiser le JS, diminuer la complexité
  • Eviter les sélecteurs CSS/Jquery horriblement lents

Mon avis : peu de choses apprises car déjà bien documenté sur le sujet mais la conférence était très bien présentée, Eric a su (d’après les réactions) sensibiliser son public.

Le Cloud Computing pour PHP

Présenté par Guillaume Plessis

Le Cloud Computing c’est quoi ?

  • Infrastructure as a Service IaaS

Infrastructure massivement virtualisée. Instances virtuelles jetables. Facturation à l’heure. Répartition de charges. L’extinction des machines entraine la suppression des données. Typiquement c’est le service Amazon EC2 mais on a aussi Rackspace Hosting, Gandi.net (que j’avais testé) et SoPrivé.

  • Platform as a Service PaaS

Serveur d’applications clé en main qui rend bon nombre de services (Stockage, langage, base de données, …)

Typiquement Google App engine pour Java et Python, Heroku pour Ruby On Rails et Windows Azure (…). Pour PHP, présentation de Baobapp que je vais tester bientôt en béta.

  • Software as a Service SaaS

Applications infogérées clé en main. Par exemple, Gmail :-)

Mon avis : Très intéressant de voir les différents modèles de Cloud, j’ai hâte de tester Baobapp, je viens de recevoir mon pass pour la béta, je consacrerai un article dessus.

Suivi de qualité – PIC, Plate-forme d’Intégration Continue

Présenté par Gabriele Santini

Présentation d’une plate-forme d’intégration continue dotée de nombreux outils. En vrac : phpUnderControl ou Hudson pour le serveur CI. Ajout d’outils comme PHPUnit, Xdebug, PHP_CS, PHP_Documentor, PMD, PHP_CodeBrowser, PHP_Depend, … Certains métriques ne sont pas bien exploitées, ils ont donc portés Sonar pour PHP et c’est surtout ça la grosse info !

Mon avis : je suis là encore très sensible aux problématiques d’industrialisation et de suivi de qualité. J’ai déjà pas mal d’outils en place pour mon travail et cette conférence n’a fait que valider ma démarche. Cependant j’ai appris l’existence de Sonar pour PHP et ça, j’ai hâte de tester. Sinon, j’ai rédigé un article sur le sujet pour le prochain numéro de PHP Solutions…

Analyse statistique du code – Écoutez votre code PHP

Présenté par Gabriele Santini
Trois niveaux d’analyse :
  • Syntaxique : avec PHP_Depend, PHPMD mais aussi Padawan pour détecter les anti-patterns et Phantm pour détecter les faux positifs.
  • Lexicale : PHPLoc (Métriques basiques), PHPCPD (code dupliqué) et PHP_CodeSniffer.
  • Bytecode : Vulcan Logic Disassembler, Bytekit et Bytekit-cli.

La visualisation peut se faire avec phpUnderControl, Arbit ou Sonar (!!!).

Mon avis : Très très intéressant, je connaissais la plupart des outils mais pas tous, je vais donc les tester. Le conférencier a bien exploré les possibilités d’analyse car explorer au niveau du bytecode, c’est… puissant !

The PHP performance paradox

Présenté par Zeev Suraski.
Fondateur de Zend Technologies, accessoirement créateur du Zend Engine (moteur interne de PHP4). Zeev nous expose l’évolution de PHP en terme de performances et fait un peu de pub pour Zend. En chiffres, on peut retenir que de PHP5 à PHP5.3 on a un facteur 5 en amélioration des performances et de PHP5.3 à PHP trunk (le prochain) on améliore x2.
Mon avis : Pas mal d’avoir des chiffres et de savoir comment ils ont modifiés PHP pour le rendre plus performant.

Avis général

Ce fût donc un très très bon forum et j’ai pris pas mal de plaisir lors de ces deux jours. C’est déjà fini, à l’année prochaine !
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz
Publié dans ForumPHP, Ma vie | Mots-clefs : , | Commentaires fermés