Aller au contenu | Aller au menu | Aller à la recherche

mardi 13 octobre 2009

Tour du mois en PHP : juillet / août 2009

Avec les grandes vacances, et quelques semaines de plus le temps de se remettre de la « pause » estivale[1], voici que la rentrée est passée, et que la blogosphère orbitant autour de PHP est redevenue plus active !

Cela dit, tout comme les années précédentes, les grandes vacances n’ont pas été sans article intéressant ; voici donc ma sélection de liens en rapport avec PHP, issus de mes bookmarks, pour les deux mois de Juillet et Août 2009 !

Juillet 2009

PHP 5.3.0 est sortie il y a quelques jours !

J’en parlais il y a plus de deux mois : PHP 5.3.0 est sortie le 30 juin. Suite à cette annonce, voici quelques points :

phpunit4eclipse phpunit4eclipse-1.png

L’idée est intéressante : pouvoir lancer des tests automatisés basés sur PHPUnit directement depuis Eclipse PDT !
L’installation n’est pas aussi simple, et les résultats pas encore parfaits — mais si vous êtes intéressé, n’hésitez pas à rejoindre la mailling-list, et à participer !

Quelques mots orientés performances

Je suis toujours des plus intéressés lorsque j’entends parler de PHP et de performances ; voici quelques articles à propos de ces deux sujets :

Zend Framework 1.9.0 Released

Et voici encore une nouvelle version de Zend Framework ; les pré-versions ont suivi au cours des semaines précédentes :

Au rang des nouveautés, on peut notamment remarquer l’arrivée de Zend_Feed_Reader, Zend_Db_Adapter_Sqlsrv, et la compatibilité avec PHP 5.3.

OSCON 2009

L’OSCON‘09 a eu lieu ce mois, avec plusieurs conférences autour de PHP ; voici les slides de quelques unes de celles-ci, qui ont attirées mon attention :

Et pour finir ce mois…

… Quelques articles de plus, un peu en vrac :


Août 2009

Et maintenant, passons au mois d’août 2009 ;-)

Most PHP releases in August!

Pour commencer, pour ceux qui prêtent attention aux statistiques, en voici une qui est amusante : toutes années et versions confondues, le mois d’août est un des deux mois de l’année qui voit le plus de sorties de nouvelles versions de PHP, et ce depuis la sortie de PHP 3.0.18, en octobre 2000 !

Et encore un peu de PHP 5.3 ?

PHP 5.3 continue à faire parler de lui — et c’est tant mieux !

Vivement qu’on en parle encore un peu plus, d’ailleurs ; sur nos projets professionnels, notamment !

ORM : En avant vers Doctrine 2.0 !

J’aime beaucoup le Framework ORM Doctrine, actuellement disponible en version 1.1.3.
La version 2.0 approche petit à petit, comme le prouve une série de posts sur les nouveautés qu’elle apportera :

Peer Review: Taking Code And Making It Better

Voici les premiers articles d’une série où Brandon Savage va effectuer une série de revues de code, et proposer des idées d’améliorations ; à suivre :

What Firefly/Serenity Can Teach Us About PHP

Pour les amateurs de séries et de SF, et de PHP en même temps ;-)

Article complet: Combien de casquettes avez-vous ?

Ce n’est pas vraiment spécifique à PHP, mais c’est tellement vrai…
Et, dans la lancée, voici un autre article qui n’est pas non plus spécifique à PHP, mais qui n’est pas inintéressant pour autant : Gender in IT, OSS, & PHP, and How it Affects Us *All*.

Mom Always Said to Share

PHP est issu d’un développement communautaire, et même si vous ne vous sentez pas de participer à son développement, vous trouverez forcément un moyen pour vous rendre utile ; par exemple, en participant à la rédaction de documentation, de tutoriaux, d’articles, en aidant sur IRC ou les mailing-lists, …
Au passage, d’ailleurs : PHP Depends On You ; vous utilisez PHP depuis des années ? Pourquoi ne pas commencer à contribuer ?

Et pour finir ce mois…

… Quelques articles de plus, un peu en vrac :


D’autres articles, ou évènements, ont attiré votre attention, pour ces deux mois d’été 2009 ?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !


Notes

[1] Le temps de finaliser cet article, oui, ça fait plus un mois que quelques semaines, et me voila terriblement en retard. — Tant pis, ça fait tout de même du bien de jeter un coup d’œil en arrière, même plusieurs semaines/mois après ! (Et maintenant, je retourne à l’écriture de celui de septembre ^^)

lundi 20 juillet 2009

Bench PHP 5.2 vs PHP 5.3

Avec la sortie de PHP 5.3 et l’apparition de nouvelles fonctionnalités, une question est fréquemment posée : qu’est-ce que vaut PHP 5.3 au niveau des performances ? Est-ce que toutes ces nouveautés ne vont pas avoir d’impact négatif ?[1]

Voila plus d’un an que PHP 5.3 est annoncée comme plus rapide que PHP 5.2 (Cf ce post sur internals@, par exemple) ; j’avais moi-même effectué quelques benchmarks synthétiques, dont j’avais posté les résultats en novembre dernier.

Mais ces tests, qui montraient un gain de performance de 10 à 20% pour PHP 5.3 par rapport à PHP 5.2, n’avaient pas été joués avec la version finale de PHP 5.3.0, d’une part, et ne testaient que des fonctions internes de PHP — pas une véritable application.

Voici donc quelques résultats obtenus avec des « vraies » applications, comportant de nombreux fichiers, des appels à une Base de Données, …
… En somme, des applications du genre de celles que nous sommes susceptibles d’utiliser tous les jours sur nos serveurs !

Sommaire de cet article :


Méthodologie

Si vous voulez aller directement aux résultats

Logiciels testés

J’ai effectué mes tests avec trois logiciels, en installation « de base », sans ajouter de plugin ni quoi que ce soit :


Versions de PHP testées

Pour ces tests, j’ai utilisé deux versions de PHP, toutes deux compilées par moi-même, avec les mêmes options de configuration.
Ces deux versions de PHP sont chargées en tant que module Apache, via deux instances différentes d’Apache[2] :

  • PHP 5.2.9, avec Apache écoutant sur les ports 529**
  • Et PHP 5.3.0, avec Apache écoutant sur les ports 530**

Les options de compilation et de configuration ne sont certainement pas optimales : à peu de chose près, j’ai conservé toutes les valeurs par défaut ; mais, considérant que je n’ai tunné ni la première installation, ni la seconde, la comparaison devrait ne pas être « trop faussée ».

Les sorties de phpinfo() sont disponibles ici, si vous voulez en savoir plus :

(Ces sorties de phpinfo() ont été enregistrées alors que j’avais activé l’extension APC)


Deux séries de tests

Les trois applications ont été testées une première fois sans que l’extension APC ne soit activée.

Les mêmes tests ont ensuite été rejoués avec l’extension APC activée.


Méthodologie

Les trois applications ont été testées en utilisant l’outil ab, avec les options suivantes, qui me semblent raisonnables pour ma machine de tests :

  • concurrence = 10
  • nombre d’occurrences = 1000

Le test est lancé une première fois sur l’instance en PHP 5.2.9, puis sur l’instance en PHP 5.3.0.
Ceci est répété 10 fois de suite (on a donc un test sur PHP 5.2.9, puis un test sur 5.3.0, puis un test sur 5.2.9, puis sur 5.3.0, etc…)

J’ai ensuite calculé la moyenne des 10 séries de test pour PHP 5.2.9 et pour PHP 5.3.0 ; c’est cette moyenne qui me sert de résultat pour comparer les deux versions.

Et voici quelques éléments de la machine de tests :

  • CPU Core 2 Quad 9550 ; les quatre cœurs étaient utilisés à 100% pendant l’exécution des tests
  • 6 GB de RAM ; Il restait en permanence de la RAM libre pendant l’exécution des tests
  • Les binaires d’Apache, PHP, et les scripts testés sont sur un disque dur 10k rpm
  • Et l’OS est un Linux Ubuntu 64 bits.


Résultats obtenus sans APC

Pour commencer, voici les résultats obtenus pour chacun des trois logiciels testés, sans APC :

Wordpress

  • PHP 5.2.9 : 33.26 requêtes / seconde
  • PHP 5.3.0 : 41.54 requêtes / seconde
  • Différence : 124.91 %

php-5.2-vs-php-5.3-wordpress-1.png

Pour ce graphique, comme pour tous les autres présentés dans cet article, plus la barre correspondant à une version de PHP est haute, plus cette version de PHP est capable de répondre à un nombre élevé de requêtes par seconde — mieux c’est niveau performances, donc.

Drupal

  • PHP 5.2.9 : 51.33 requêtes / seconde
  • PHP 5.3.0 : 63.58 requêtes / seconde
  • Différence : 123.87 %

php-5.2-vs-php-5.3-drupal-1.png

Quickstart Zend Framework

  • PHP 5.2.9 : 77.28 requêtes / seconde
  • PHP 5.3.0 : 97.79 requêtes / seconde
  • Différence : 126.54 %

php-5.2-vs-php-5.3-zf-quickstart-1.png


Résultats obtenus avec APC

Et maintenant, les résultats des mêmes tests, en ayant activé l’extension APC (aucune option de configuration n’a été définie dans le fichier php.ini ; toutes les valeurs de configuration sont donc celles par défaut — même si ce n’est pas optimal).

Wordpress

  • PHP 5.2.9 : 128.66 requêtes / seconde
  • PHP 5.3.0 : 139.38 requêtes / seconde
  • Différence : 108.33 %

php-5.2-vs-php-5.3-wordpress-apc-1.png

Drupal

  • PHP 5.2.9 : 207.79 requêtes / seconde
  • PHP 5.3.0 : 212.84 requêtes / seconde
  • Différence : 102.43 %

php-5.2-vs-php-5.3-drupal-apc-1.png

Quickstart Zend Framework

  • PHP 5.2.9 : 297.87 requêtes / seconde
  • PHP 5.3.0 : 290.91 requêtes / seconde
  • Différence : 97.66 %

php-5.2-vs-php-5.3-zf-quickstart-apc-1.png


Conclusion

Pour conclure, voici quelques mots — sans trop réfléchir non plus : c’est aussi à vous d’interprêter ces résultats et de voir en quoi est-ce qu’ils peuvent être intéressants dans votre situation !

PHP 5.3 : gain de performances !

Comme conclusion, je ferai volontairement simple : sur ces quelques tests d’applications « réelles », sur une installation PHP « standard », PHP 5.3.0 s’en sort nettement mieux que PHP 5.2.x : environ 25 % de requêtes par seconde supplémentaires !

Une fois l’extension APC activée, le gain est nettement moins visible : seulement quelques pourcents, voire même une légère perte dans un cas :-(
Cela dit, on voit encore une fois l’intérêt d’activer APC, à partir du moment où vous êtes libre d’installer des extensions sur votre hébergement : sur ces tests, un très rapide calcul montre que vous répondez à environ trois fois plus de requêtes par seconde avec APC que sans !

A quoi est dû ce gain ? Je n’entrerai pas dans les détails[3], mais il y a fort à parier que les quelques optimisations citées ici n’y sont pas pour rien :

  • Déplacement des constantes vers des zones mémoire en lecture-seule
  • Amélioration du gestionnaire d’exceptions : il est maintenant plus simple, et tient sur moins de code.
  • Suppression d’appels système à « fopen » pour les inclusions de fichiers via require_once et include_once, résultant en une amélioration de la rapidité de ces deux directives.
  • Refactoring de la pile d’appels
  • Utilisation de gcc4 pour la compilation.

Pour plus d’informations, n’hésitez pas à consulter le changelog de PHP 5.3.0.


Quel intérêt ?

J’en entends déjà certains se demander Mais quel intérêt pour mon application ? Et quid du coût probable de migration de PHP 5.2 vers 5.3 ?

Et bien, pour votre application toute seule, l’intérêt, c’est vous le mieux placé pour le déterminer ; mais pensez à ceci : 20% de gain CPU, si vous avez 10 serveurs faisant tourner du PHP, ça peut signifier que deux de ces serveurs pourraient être utilisés pour autre chose… A vous de voir l’économie que cela peut signifier[4] ;-)

Après, oui, rendre votre application compatible PHP 5.3, et la re-tester, peut prendre du temps, et représenter un coût non négligeable — mais pour les futures applications que vous allez développer, qu’en est-il ? Pourquoi ne pas partir sur PHP 5.3 dès la phase de développement ?


Disclaimer

A noter tout de même : de manière générale, un serveur faisant tourner PHP aura aussi tendance à servir des fichiers statiques (JS, CSS, images, …), ce qui peut avoir un impact sur sa charge, indépendamment de PHP — et les tests présentés ici ne prennaient en compte que le chargement de la page PHP.

A noter aussi : les tests réalisés ici ne testaient qu’une seule page de chaque application, et non chaque application dans sa globalité. Avant de vous lancer dans une — possiblement coûteuse — migration compléte d’application, il peut être intéressant de jouer des tests un peu plus approfondis !


Aller plus loin ? D’autres tests ?

Si vous effectuez d’autres benchmarks de ce type, ou plus poussés, je suis extrêmement intéressé ! N’hésitez pas à laisser un commentaire ;-)

En attendant, vous pouvez jeter un coup d’oeil sur ces deux benchmarks d’eZPublish, effectués il y a quelques semaines :

Les gains de performance constatés sont du même type que ceux que j’obtiens dans cet article ; et ce, que ce soit sous Linux ou sous Windows, ce qui est une excellente nouvelle !


Au passage, vous trouverez joint à cet article le fichier .ods que j’ai contruit, regroupant tous les résultats obtenus (et pas seulement les moyennes présentées ici).


Notes

[1] D’aucun diraient que ça fait deux questions, et pas une ; mais elles sont liées, donc bon…

[2] Il faudrait, un jour, que je rédige un article expliquant comment installer plusieurs versions de PHP sur une seule machine, d’ailleurs… ça fait plus d’un an que j’ai les notes nécessaires… il faut "juste" que je trouve le temps de rédiger…

[3] Détails que je ne connais pas en détails, d’ailleurs ^^

[4] OK, si vous en arrivez à calculer quelles économies vous pourriez réaliser de cette manière, changer de version de PHP n’est pas la seule chose à laquelle vous penserez : passer à un autre serveur (nginx, par exemple), ou installer un reverse proxy (varnish, par exemple) peuvent être deux bonnes idées)

jeudi 2 juillet 2009

Tour du mois en PHP : juin 2009

Le mois de juillet commence tout juste, ce qui signifie que le mois de juin vient de se terminer ^^
Voici donc ma sélection de quelques liens bookmarkés, en rapport avec PHP, pour juin 2009 :

Sortie de PHP 5.3.0

C’est globalement l’événement du mois : ce fût le 30 juin — ça a failli être la semaine précédente, mais repoussé de dernière minute, la sortie de PHP 5.3.0, après de longs mois d’attente, en vue de nous apporter une des plus grosses version « mineure » de PHP !
Pour ne citer que quelques uns des multiples articles en parlant :

(Je compte facilement un grosse quinzaine de blog-posts sur deux jours à propos de cette annonce — et il y en a un paquet que je n’ai pas notés ^^ )

PHP is 14 Today

A quelques semaines de la sortie de PHP 5.3, et alors qu’on commence à nouveau à parler de PHP 6, PHP prend un an de plus, et atteint les 14 ans ;-)
Sur le même sujet : Happy Birthday PHP!

Dutch PHP Conference 2009

La « Dutch PHP Conference 2009 » avait lieu les 12 et 13 juin, précédée d’une journée de pré-conférences le 11 juin.
Vous pouvez retrouver les slides des présentations données sur la page suivante : DPC Sessions and Slides.
Pour ne citer que quelques unes des présentations (sélection semi-aléatoire ^^) :

Symfony Live 2009

Plus proche de nous, la conférence « Symfony Live Paris 2009 » a eu lieu les 11 et 12 juin.
Les slides des deux journées sont disponibles en ligne :

Et dans la lancée, l’édition de Symfony Live Paris 2010 est prévue pour les 16 et 17 février 2010 ;-)
Au passage, tant que je parle de symfony : Voici l’annonce d’un nouveau guide « Getting Started » pour le framework symfony, en version 1.2

Retours sur l’article Google — PHP performance tips

Il y a quelques jours, Google postait l’article PHP performance tips.
Face à certains points de cet article, les réactions ne se sont pas faite attendre, avec, par exemple, les quelques posts suivants :

Notes pdmnotesmay09

Quelques notes sur l’avenir de PHP, prises lors de deux jours de réunions entre Core Developpers de PHP ; en particulier, au niveau de ce qu’il reste à faire pour PHP 6.
Et, au passage, un petit paragraphe sur une éventuelle version 5.4 ;-)
Pour un résumé des principaux points, vous pouvez jeter un coup d’oeil sur What for PHP6?.

Création du PHP standards group

A peu de chose près, chaque projet majeur en PHP suit ses propres normes de codage… Est-ce qu’il ne serait pas intéressant, alors que de nouvelles fonctionnalités s’ajoutent sans cesse à PHP (Cf PHP 5.3 et ses espaces de noms, par exemple) et que les développements en PHP s’industrialisent, de parvenir à unifier ces différents standards ?
C’est justement l’objectif du group php.standards, qui s’est formé en regroupant des membres de plusieurs communautés PHP, comme PEAR, Phing, Zend Framework, symfony, …
Quelques liens de plus sur le sujet :

Blog de Doctrine

Doctrine, le Framework ORM utilisé par défaut par symfony — et probablement, le Framework ORM PHP le plus connu[2] a un blog depuis pas mal de temps, mais celui-ci était peu actif. Depuis quelques semaines, les posts se font plus fréquents :

Using Apache2 ITK Multi-Processing Module on Linux

Vous avez déjà été confronté au problème du « comment faire tourner PHP sous Apache avec un compte utilisateur différent pour chaque VirtualHost », qui se pose souvent dans un contexte d’hébergement mutualisé ?
Le MPM ITK apporte une réponse à cette question, comme le faisaient déjà, par exemple, suPHP, ou suEXEC.

PHP performance III — Running nginx

Et, pour finir : nous utilisons souvent le serveur Apache lorsqu’il s’agit de faire tourner une application PHP.
nginx est une solution alternative, de plus en plus souvent prise en compte du fait de ses prouesses en termes de performance.
Cet article explique comment mettre en place nginx + PHP, et arrive à un gain non négligeable en termes de requêtes par seconde.


D’autres articles, ou évènements, ont attiré votre attention, pour ce mois de juin 2009 ?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !


Notes

[1] Oui, je sais, self-publicité tout ça ^^ Mais je me permet :-p

[2] Et le plus activement développé en ce moment, dirais-je

mardi 30 juin 2009

Sortie de PHP 5.3.0 stable ; ça y est !

Cela fait maintenant plus d’un an que je travaille souvent sous PHP 5.3[1] : j’ai commencé par des snapshots extraits du CVS, puis des versions alpha, puis plusieurs RC…

Aujourd’hui, mardi 30 juin 2009, est le jour de la sortie de PHP 5.3.0 !
Pour le téléchargement, c’est par ici : Télécharger PHP 5.3.0
Et pour le téléchargement pour windows : Télécharger PHP 5.3.0 pour windows

Et pour l’annonce officielle : PHP 5.3.0 Released!

J’en ai parlé longuement il y a quelques mois de cela : PHP 5.3 apporte une grande quantité de nouveautés (espaces de nom, facilitation de l’internationalisation, améliorations au niveau de tout ce qui est « static », fonctions anonymes et closures, nouvelles classes ajoutées à la SPL, extension Phar, goto[2], …), en limitant théoriquement les risques de casser vos applications existantes.


Pour plus de détails, n’hésitez pas à vous reporter à l’article PHP 5.3 : Nouveautés : Introduction et Sommaire, posté en octobre 2008 sur ce blog, qui pointe lui-même sur une vingtaine d’articles détaillant chacun une des nouveautés de cette version !

Et si vous voulez plus d’informations, vous pouvez, à tout hasard, jeter un coup d’œil aux quelques liens suivants :


La question qui se pose, maintenant, est « faut-il passer à PHP 5.3 tout de suite ? »

La réponse n’est pas évidente :

  • PHP 5.3 amène un grand nombre de fonctionnalités extrêmement intéressantes,
  • Mais PHP 5.3 ne sera pas déployé tout de suite chez la plus grande partie des hébergeurs,
    • Que ce soit pour les hébergeurs « grand-public »,
    • Ou même pour les hébergeurs « pro ».
  • Une nouvelle version aussi importante que celle-ci apporte forcément des risques,
    • Que ce soit de nouveaux bugs,
    • Ou des difficultés de migration.

En somme, comment choisir ?
Pour ma part, voici ce que je me dis[3] :

  • Si j’ai une application existante en PHP 5.2 qui fonctionne, quel intérêt à la passer en 5.3 ?
    • Pour une application grand public déjà existante, nécessiter PHP 5.3, actuellement peu répandu, est risqué.
    • Pour une application pro, en ces temps de difficultés économiques, est-ce que la migration ne risque pas de couter trop cher, tout en n’apportant que peu ?
  • Mais pour un projet qui commencerait dans les prochains mois, et qui ne sortirait pas en version "stable" avant quelque chose comme un an… là, la question se pose vraiment : est-ce qu’il ne serait pas intéressant de travailler en PHP 5.3 ?
    • A mes yeux, dans ce contexte, la réponse est oui, il faut travailler en PHP 5.3
    • Et je ne suis pas le seul à me faire cette réflexion — par exemple, une partie des « gros » frameworks partent sur PHP 5.3 pour leur prochaine version majeure ;-)

Et pour vous ? PHP 5.3, ou pas PHP 5.3 ? Et pourquoi ?



Note : je n’ai pas l’habitude de poster pour annoncer des nouvelles versions de logiciels, et cet article n’est pas annonciateur d’une série d’autres posts de ce type : d’autres bloggueurs le font déjà sur Planete PHP fr.
Mais, vu le nombre de posts que j’ai publié à propos de php-5.3, je ne pouvais pas ne pas poster cette annonce ^^

Notes

[1] Et que je souffre parfois, sous certaines applications qui n’ont pas encore été mises à jour :-(

[2] Et son Velociraptor

[3] il s’agit de quelques réflexions « perso », un peu sur le vif, avec lesquelles je ne serai plus forcément d’accord dans quelques semaines / mois, lorsque cette nouvelle version commencera à se répandre !

jeudi 4 juin 2009

SpiderMonkey : Exécuter du Javascript côté serveur, depuis PHP

SpiderMonkey est le moteur Javascript utilisé par Mozilla Firefox ; cet article va nous montrer comment utiliser l’extension PHP SpiderMonkey — encore expérimentale — pour exécuter du Javascript côté serveur, depuis PHP.

Sommaire de cet article :

Lire la suite...

mercredi 3 juin 2009

Tour du mois en PHP : mai 2009

Voici le mois de juin qui commence — ce qui signifie que le moi de mai vient de se terminer ^^
Et voici donc ma sélection de quelques liens bookmarkés, en rapport avec PHP, pour mai 2009 :

Zend Framework 1.8.0 Released

Je parlais le mois dernier de la sortie de la pré-version 1.8 du Zend Framework ; et bien, voici la version 1.8.0 !
Au niveau des nouveautés, on pense bien évidemment à Zend_Tool, qui permet notamment d’utiliser un outil en ligne de commandes pour générer du code — en particulier, un squelette de projet et/ou de controlleur —, un peu à la manière de ce que fait symfony depuis bien longtemps. Pour plus d’informations, n’hésitez pas à lire Zend_Tool and ZF 1.8 !
A noter encore, l’apparition de Zend_Application, qui fourni un mécanisme standard de bootstrapping d’application, ou encore la refonte de l’Autoloader — et si voulez plus de détails à ce sujet, vous pouvez lire http://devzone.zend.com/article/4525-Developing-a-Comprehensive-Autoloader.
Accessoirement : depuis, la version 1.8.2 est sortie.

Magazine PHP TV - Mai 2009

L’émission de mai 2009 de PHPTV est sortie ; au programme, MySQL suite au rachat par Oracle, le point sur symfony et Zend Framework aujourd’hui, et Magento.
Et en complément, une interview de Fabien Potencier et Andi Gutmans, créateurs des deux frameworks cités au-dessus.

php|tek 2009

C’est du 19 au 22 mai qu’avait lieu à Chicago la conférence php. Suite à celle-ci, de nombreuses séries de slides ont été postées, parfois accompagnées de quelques commentaires.
Pour ne citer que quelques exemples[1] :

Et pour une liste un peu plus longue, vous pouvez vous pencher sur le tag tek09 sur slideshare ; vous pouvez aussi consulter le tour d’horizon qu’en a fait Michelangelo van Dam.

The "European WinPHP Challenge"!

PHP a depuis fort longtemps une mauvaise réputation sous Windows, en particulier au niveau des performances. Pour prouver que les choses s’améliorent avec IIS7 et FastCGI, voici le concours WinPHP, dont l’objectif est de montrer que PHP et Windows ne sont pas (plus ?) incompatibles.
Les résultats seront annoncés pendant la Dutch PHP Conference, mi-juin.
En attendant, voici quelques séries de blog-posts, où plusieurs participants nous font part de leur expérience ; si vous êtes amenés à déployer PHP sous Windows / IIS7, vous y trouverez sans aucun doute nombre informations utiles :

PHP is NOW

PHP est, depuis plusieurs années maintenant, considéré par un outil de développement sérieux par de grosses sociétés — au point que de gros éditeurs tels Microsoft ou Oracle se tournent de plus en plus vers notre langage de prédilection.
En parallèle, PHP est aussi un outil libre, disponible gratuitement — sans coût de licence, donc —, tout comme de nombreuses briques logicielles tournant autour, que ce soit frameworks, applications Web, serveurs de Base de Données, … Une question intéressante, maintenant : en ces temps difficiles au niveau économique, est-ce que nous n’aurions pas devant nous une parfaite occasion de pousser encore plus PHP en avant ?

symfony: The new Getting Started tutorial

La documentation du framework symfony continue à s’enrichir, avec une nouvelle version du Tutorial "Getting started".
A noter aussi, la sortie en français du livre Mieux développer en PHP avec Symfony 1.2 et Doctrine.
Et puisque l’on parle de Doctrine, voici une mise à jour d’un comparatif entre Doctrine et Propel, deux ORM PHP parmis les plus utilisés — à ce sujet, Doctrine 2.0 commence à s’annoncer petit à petit ;-)

BARGENTO II Le Retour !

Le 2 juin 2009 aura lieu à Paris le second Bargento, événement regroupant plus de 200 passionnés et professionnels intervenant autour de la plate-forme e-commerce Magento.
Pour plus d’informations : bargento.fr.

Pimp Your PHP App with Flex!

Je n’ai encore jamais eu l’occasion de développer en Flex, mais j’en entends de plus en plus parler dans des contextes orientés PHP. Avez-vous testé ? Qu’en pensez-vous ? Et de cet article ?

PHP performance III — Running nginx

Et pour finir : Apache est souvent le serveur Web auquel on associe PHP — c’est d’ailleurs un des serveurs Web les plus répandus.
Cela dit, ce n’est pas la seule possibilité qui existe pour déployer une application PHP, en particulier lorsque l’on recherche les performances avant tout ; une alternative dont on entend fréquemment parler est nginx.


D’autres articles, ou évènements, ont attiré votre attention, pour ce mois de mai 2009 ?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !

Et pour très bientôt, un « vrai » article — ça commençait à faire longtemps, direz-vous ^^


Notes

[1] Sélection semi-aléatoire : je n’ai pas encore eu le temps de parcourir tous ces slides…

[2] Celle-ci a attiré mon attention : je vais donner une présentation du même style au bureau à la fin du mois ^^

Tour du mois en PHP : avril 2009

J’ai été quelque peu overbooké ces derniers temps, et je n’ai pas eu jusqu’à ce week-end le temps[1] de repasser sur mes derniers bookmarks enregistrés… Mais c’est maintenant chose faite, et voici ma sélection de liens intéressants pour le mois d’avril 2009[2] :

Forum PHP 2009 : Appel à conférenciers

Cette année, le Forum PHP 2009, organisé par l’AFUP, aura lieu les 12 et 13 novembre, à la cité des sciences à Paris.
L’Appel à conférenciers est ouvert jusqu’au 30 juin.
Et pour les inscriptions, c’est par ici !

Upcoming PHP 5.3 features and beyond

PHP 5.3 approche de plus en plus ; voici une interview de Lukas Kahwe Smith, Release Manager pour cette version, où il parle de certaines des nouveautés de PHP 5.3, ainsi que des futures versions — en particulier, de ce qu’est déjà, et sera peut-être PHP 6.
Et au passage, un article sur les fonctions lambda et les closures, une des grandes nouveautés de PHP 5.3.

PHPUnit?: tests unitaires pour PHP

Une grosse partie du temps passé à travailler sur une application implique des modifications du code initial, sans pour autant avoir le temps de retester manuellement l’ensemble de l’application. C’est particulièrement dans ce genre de situation que les tests automatisés prouvent leur utilité.
Cet article — en français — vous montrera comment mettre en place des tests unitaires automatisés en utilisant PHPUnit, en allant jusqu’à l’obtention d’un rapport de couverture de code, tout en passant par l’utilisation de Selenium pour exécuter des tests directement au sein d’un navigateur.

Zend Framework 1.8 PREVIEW Release

La sortie de la prochaine version de Zend Framework, la version 1.8, approche ; voici une pré-release, pour pouvoir dès maintenant commencer à tester ses nouvelles fonctionnalités.
Au programme, en particulier, la mise en place d’un outil en ligne de commande, pour générer un projet, un controlleur, … En somme, le début de l’implémentation au sein de ZF d’un des points qui font la force de symfony !

Série de posts sur l’utilisation de Zend_Form

Matthew Weier O’Phinney, architecte intervenant sur Zend Framework, nous offre une série de posts sur l’utilisation des classes Zend_Form :

Zend Server released!

Après quelques mois de versions Bêta, voici la première release "stable" de Zend Server.

Wrapping C++ Classes in a PHP Extension

Je n’ai toujours pas eu le courage ni le temps de me mettre au développement d’extensions PHP, et je n’ai pas touché à une ligne de C/C++ depuis des années, mais voici un article donnant quelques idées à propos de l’utilisation d’une classe C++ pour le développement d’une extension PHP ; à mettre dans un coin, ça peut servir un jour ;-)

PHPPowerPoint 0.1.0 (CTP1) released!

La génération de documents (documents Word, Excel, PDF, …) est une problématique que l’on voit souvent passer sur nos projets PHP…
Voici PHPPowerPoint, une nouvelle classe permettant de générer des documents PowerPoint 2007.

Refactoring Your Application

Le refactoring est pour ainsi dire partie intégrante de la vie d’un développeur ; voici quelques mots à son sujet : quoi ? comment ? pourquoi ?


D’autres articles, ou évènements, ont attiré votre attention, pour ce mois d’avril 2009 ?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !

Et à (très ?) bientôt pour le mois de mai : l’article est déjà bien avancé, ce coup-ci ^^


Notes

[1] Ni l’envie, peut-être aussi, d’ailleurs

[2] Et je me dis que, même deux mois après, ça fait du bien de repasser là-dessus : j’ai redécouvert des articles dont je ne me souvenais même plus — certains d’entre eux non postés ici, d’ailleurs.

lundi 20 avril 2009

Tour du mois en PHP : mars 2009

Comme tous les mois, en voici un nouveau qui s’est achevé[1] — avec sa quantité d’articles et d’événements intéressants !
Voici ma compilation de liens m’ayant le plus marqués pour le mois de mars 2009.

PHP Mutation Testing With MutateMe

MutateMe est un framework de Tests de mutations[2], dont l’objectif est de permettre de tester la qualité des tests automatisés développés pour une application, en appliquant des « mutations » mineures au code source du programme.
A noter aussi en mars : sortie de la version 0.2.

Create a REST API with PHP

Un tour d’horizon sur ce qu’est une API REST, et les premières informations nécessaires à la création d’un serveur REST en PHP.

Getting started with phpUnderControl

J’ai eu plusieurs fois l’occasion de travailler avec la Plate-forme d’intégration continue PhpUnderControl.
Voici un article qui explique comment installer PhpUnderControl, et configurer l’application pour l’intégration continue d’un projet PHP, en passant par la génération de sa PhpDoc, l’analyse de code, ou encore les tests automatisés.

Fake uploading files

Ceux d’entre vous qui mettent en place des Tests Automatisés pour leur application apprécieront peut-être l’extension « fakeupload »[3], qui permet de faire croire à PHP que des fichiers ont été uploadés.

En restant sur les tests automatisés, on peut parler de l’utilisation de l’extension Runkit pour tester vos anciennes applications PHP[4], en permettant de mocker des fonctions.

PHP Quebec 2009

Les 4 et 6 mars avaient lieu la conférence PHP Québec 2009.
De nombreuses présentations ont été données ; les slides de ces conférences sont disponibles en ligne.

PHP micro-optimization tips

Toute une liste d’astuces de « micro-optimisation » pour gagner quelques micro-secondes sur vos scripts PHP…
… Et en réponse, une floppée de posts :

Finalement, on en retombe sur la même chose que d’habitude : premature optimization is the root of all evil, mais jeter un coup d’œil à cette liste d’astuces ne peut pas faire de mal, intellectuellement parlant !

Et pour aller un peu plus loin que ces idées de micro-optimisation, vous pouvez lire The five immutable rules of optimization.

Doctrine 1.1 Released

Le framework ORM Doctrine (utilisé notamment par le framework Symfony, et facilement branchable dans un projet Zend Framework) est sorti en version 1.1.
Au menu, une douzaine de nouveautés, et un grand nombre de corrections de bugs.

Part 1: What is Dependency Injection?

Voici le premier article d’une série sur l’injection de dépendance, et l’implémentation en PHP d’un conteneur d’injections de dépendances.
Pour la suite :

Premier Drupal Camp Lyon

Samedi 28 mars se tenait le premier Drupal Camp Lyonnais — le premier hors Paris, avec plusieurs présentations, dont une sur la future version 7 de Drupal, et une autre sur le développement de modules.
A suivre pour une autre fois ? ;-)

Sortie de PHP 5.3 RC1

La sortie de PHP 5.3 se rapproche : cette future version de notre langage de programmation favoris est désormais entrée dans sa phase de Release Candidates !
Les nouveautés ? Vous en avez sans doute déjà entendu parler… Mais n’hésitez pas à jeter un coup d’œil à ma série d’articles sur le sujet ;-)

Atelier Zend Framework : Autorisations : lier les ACLs aux contrôleurs et objets métiers

Zend Framework met à notre disposition la classe Zend_Acl, pour gérer les autorisations d’accès à des ressources… Mais la gestion des ACL n’en reste pas moins un sujet délicat, posant souvent problème lors de la mise en place d’une application.
Cet article présente une mise en place possible d’ACL au sein d’un application basée sur Zend Framework.

Symfony Live : Conférence francophone sur Symfony à Paris les 11 & 12 juin 2009

Les 11 et 12 juins auront lieu à Paris la première conférence francophone dédiée au framework PHP Symfony, organisée par Sensio Labs et l’AFUP.

2009 WinPHP Challenge

Et enfin, pour terminer, voici un concours dont l’objectif est de montrer à quel point, suite aux améliorations récentes, PHP est à même de fonctionner correctement sur une plate-forme Windows + IIS.
Les inscriptions se terminant le 17 avril, les résultats devraient être connus le 13 juin !


D’autres articles, ou évènements, ont attiré votre attention, pour ce mois de mars 2009 ?
Comme d’habitude, n’hésitez pas à en faire part en commentaire !


Notes

[1] Oui, encore une fois, ce n’est plus tout à fait le début du mois ; mais j’apprécie tout de même le passage sur mes favoris : ça permet de « redécouvrir » certains liens intéressants ;-)

[2] A tout hasard, si quelqu’un a une meilleure traduction pour « Mutation Testing » que « Tests de mutations », faites moi signe en commentaire ^^

[3] Je ne l’ai pas moi-même essayée, mais je suis preneur de tout retour ;-)

[4] Comprendre : applications développées en PHP non orienté objet

- page 2 de 11 -