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

Développement Web

Fil des billets - Fil des commentaires

lundi 21 décembre 2009

Tour du mois en PHP : novembre 2009

Encore une fois quelques semaines après la bataille, mais toujours présent, voici quelques uns des articles et blog-posts que j’ai bookmarqué pour le mois de novembre 2009 — ceux qui me semblent le plus intéressant ou le plus marquant, en y revenant quelques semaines après.

Forum PHP Paris 2009

C’est sans doute l’événement du mois de novembre, tout au moins pour la communauté PHP française : le Forum PHP 2009, organisé par l’AFUP, a eu lieu cette année les 12 et 13 novembre.
Voici quelques blog-post qui racontent ce qu’il s’est passé durant ces deux jounées :

Voila qui me fait penser que j’ai toujours plusieurs pages de notes à informatiser, avant de perdre leur version papier… Peut-être pour les vacances de Noël…

Distributing PHP processing with Gearman

Depuis quelques mois, j’entends de plus en plus souvent parler de Gearman, qui permet de faire de la répartition de tâches sur plusieurs machines.
Je sens que je ne vais pas tarder à m’y essayer, d’ailleurs ; en attendant, voici justement un article expliquant comment utiliser Gearman depuis PHP.

PHP 5.3 sous Windows, plus de nouveautés qu’on le croit!

J’ai parlé l’an dernier d’un bon paquet de nouveautés que PHP 5.3, sorti en juin cette année, nous apportait ; mais je ne me suis jamais vraiment étendu sur ce que cette version apportait sous Windows.
Voici un article à ce sujet, qui explique que PHP 5.3 a été l’occasion de reconstruire toute une plate-forme de compilation, de mettre à jour des bibliothèques que ne l’avaient pas été depuis des années, …

Synthèse du Barcamp PHP toulousain

Le 29 octobre a eu lieu à Toulouse un Barcamp PHP. Voici quelques posts autour de cet événement :

A quand les prochains ? Et dans d’autres villes ?

Utilisation de l’ORM Doctrine sous Zend Framework

J’apprécie beaucoup le Framework ORM Doctrine, ORM par défaut de symfony, et regrette parfois qu’il ne soit pas proposé « par défaut » avec Zend Framework.
Toutefois, cela n’empèche pas d’utiliser ces deux outils ensemble :

Et au passage, puisque je parle de ZF : Reasons To Use Zend Framework

Adapting The Joel Test To Web Development

Vous envisagez de changer d’employeur ? Voici quelques questions, adaptées du Joel Test, qu’il peut être judicieux de poser à votre peut-être-futur employeur, afin de déterminer si vous avez vraiment envie de bosser pour lui.
Et pour ce qui est de votre employeur, qu’est-ce que cela donnerait ? Voila peut-être une occasion pour vous de promouvoir quelques bonnes pratiques, non ? ;-)
Quelques questions sélectionnées plus ou moins aléatoirement :

  • Utilisez-vous un outil de contrôle de révisions ?
  • Disposez-vous de spécifications quant au site que vous développez ?
  • Utilisez-vous une plate-forme d’intégration continue ?

PHP_CodeBrowser Release version 0.1.0

Voila qui peut être utile pour ceux d’entre nous qui utilisent fréquemment phpUnderControl (qui vient de sortir en version 0.5, intégrant justement PHP_CodeBrowser) comme plate-forme d’intégration continue : un navigateur de sources PHP, avec coloration syntaxique, et sections mettant en évidence les erreurs trouvées via PHPUnit ou PHP_CodeSniffer.

Pirum, the Simple PEAR Channel Server Manager

Probablement trop peu d’entre nous utilisent le système de repository PEAR pour distribuer leurs projets ; peut-être est-ce parce que les serveurs PEAR actuels ne sont pas satisfaisant ?
C’est la réflexion que s’est faite Fabien Potencier, et suite à laquelle il a créé un nouvel outil permettant de facilement mettre sur pieds un repository PEAR : Pirum, The Simple PEAR Channel Server Manager.

ZendCon ‘09 Slides

La ZendCon 2009 a eu lieu du 19 au 22 octobre, avec un grand nombre de conférences — dont les slides sont disponibles en ligne.
Je n’ai pas encore le temps de tous les parcourir (il y en a quelques séries ^^), mais plusieurs sont des plus intéressants ;-)

Gestion d’exceptions en PHP

Et pour finir le mois, une série d’articles rédigés par Brandon Savage à propos de la gestion, et de l’utilisation, d’exceptions en PHP :

Et au passage, parce qu’on entend trop souvent tout et n’importe quoi à ce sujet, voici, du même auteur :


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


jeudi 3 décembre 2009

Tour du mois en PHP : septembre / octobre 2009

Encore une fois quelque peu en retard[1], voici ma sélection de liens en rapport avec PHP, issue de mes bookmarks, pour les deux mois de septembre et octobre 2009 !

Septembre 2009

Commençons par le mois de septembre 2009 :

Custom Apps: Some Strategies For Easy Configuration Files

On n’y pense trop souvent que trop tard, ou pas assez, mais nos applications ont toujours besoin d’être configurées, ne serait-ce que pour fonctionner sur plusieurs environnements[2].
Voici quelques pensées sur le sujet — il en ressort principalement qu’utiliser des fichiers .ini peut être une bonne solution ; et l’ayant mise en place sur plusieurs projets, j’ai tendance à être assez d’accord.

Peer Review: Taking Code And Making It Better

Et voici les derniers articles d’une série commencée le mois dernier, où Brandon Savage effectue une revue de code en profondeur d’un composant PHP :

Judging the winPHP contest, or 10 tips to make the cut

Quelques retours de l’un des juges du concours WinPHP, qu’il peut être intéressant de parcourir, pour le jour où vous voudrez participer à un événement de ce type.

PHP 5.2.11 Release Announcement

Malgré la sortie de PHP 5.3 il y a quelques mois de cela, fin juin 2009, PHP 5.2.x continue à vivre, comme le prouve la sortie de la version 5.2.11 mi-septembre.
Au programme, cette fois encore, pas de grosse nouveauté — ce n’est pas le rôle d’une version mineure, après tout — mais corrections de bugs.

Zend Framework Monthly Bug Hunt Starts Today - C’mon, Join In!

Ça ne peut que permettre de dépiler un peu le bugtracker de Zend Framework, et mènera à une amélioration de la qualité du Framework : Zend Framework lance une série de Bug Hut Days.
Et pour les intéressés : A Guide To Zend Framework Bug Hunt Days

PHP enters top 3 of most popular programming languages

Il n’était pas possible de laisser passer cette information : PHP arrive, pour la première fois, en troisième position du classement TIOBE des langages de programmation les plus populaires — après le Java et le C.
Et on peut constater qu’il conserve cette troisième place au mois de novembre ;-)

Windows Cache Extension for PHP

Beaucoup d’entre vous ne se sentiront peut-être que peu concernés, mais c’est un bon signe des progrès que réalise PHP sous Windows + IIS : voici la sortie officielle de l’extension Windows Cache Extension for PHP, qui joue le rôle de cache d’opcodes pour PHP sous IIS.
A noter aussi, au passage : Windows Cache Extension for PHP and CPU usage.

Et en vrac

Et pour finir le mois, quelques articles de plus, « en vrac » :


Octobre 2009

Et, pour ce qui est d’octobre :

Livre blanc "Industrialisation PHP"

Commençons par la publication d’un livre blanc, gratuit, traitant de l’industrialisation des développements en PHP.
En vrac et en ultra-résumé, quelques extraits du sommaire : Formation des équipes, normes de codage, intégration continue, … pour un total de 57 pages qu’il ne peut être que bénéfique de lire ;-)

The Mysteries Of Asynchronous Processing With PHP

Ensuite, voici une série de trois articles sur l’utilisation et la mise en place de traitements asynchrones avec PHP et Zend Framework :

Practical testing in php part

Et maintenant, une série de neuf articles traitant de la mise de tests unitaires automatisés, avec PHPUnit :

Templating Engines in PHP

Un des « grands débats » du mois, avec l’annonce de sortie de Twig, un nouveau moteur de templates pour PHP : est-ce que PHP est un bon langage de templating ?
Comme de bien entendu, les avis divergent :

Je ne sais pas moi-même ce que je répondrais à cette question, d’ailleurs… je suppose que je n’aurais pas de réponse « standard », et que ça donnerait quelque chose du genre de « ça dépend des projets, de leurs besoins, et des intervenants et habitudes dans l’entreprise ». Un avis ?

Configuring PHP: Essential INI Settings

Nous autre développeurs PHP n’avons probablement pas assez le réflexe de nous pencher sur la configuration de PHP en elle-même… Et pourtant, il y a de quoi faire !
Voici quelques directives de configuration que nous devrions — je suppose / J’espère — tous connaitre, de par l’impact qu’elles peuvent avoir sur notre code et nos développements.

Full Text Search with Sphinx

Difficile d’imaginer, de nos jours, un site Internet sans formulaire de recherche. Pour répondre à ce besoin, de nombreux moteurs de recherche Fulltext ont été développés. Parmi eux, on peut notamment citer Sphinx, qu’il est relativement facile d’interroger depuis PHP.
Et puisque nous parlons de moteurs de recherche Fulltext, voici l’annonce de sortie d’une extension PHP permettant de communiquer avec un autre moteur, Solr : Announcing the Apache Solr extension in PHP.

Exposing Service APIs via Zend Framework

En ces temps de sites Web communiquant et ouverts, exposer une API est une nécessité pour un nombre croissant d’applications en ligne.
Vous utilisez Zend Framework ? Cet article est probablement écrit juste pour vous ;-)

Why will Symfony 2.0 finally use PHP 5.3?

Et pour finir : la prochaine version majeure d’une partie des « grands » frameworks (notamment, symfony 2.0, Zend Framework 2.0, Doctrine 2.0 — leur sortie étant généralement prévue pour fin 2010) nécessitera PHP 5.3 ; voici les raisons qui expliquent ce choix pour symfony, plutôt que de conserver la compatibilité avec PHP 5.2.x.
Deux points particulièrement intéressant à mes yeux, notamment :

  • D’une part, PHP 5.3 apporte une quantité absolument non-négligeable de nouveautés ^^
  • Et, d’autre part : si aucun framework et/ou aucune application ne requiert PHP 5.3, les hébergeurs de sont pas prêt d’installer cette nouvelle version — à ce niveau, c’est une boucle sans fin qu’il faut impérativement casser à un moment où à un autre, même si c’est un pari à long terme.


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


Notes

[1] mais après tout, ça permet de repasser sur des articles parus il y a quelques temps — et parfois, même, de les redécouvrir ! Ce qui est finalement tout le but de ces articles…

[2] développement, intégration, recette, production, …

[3] Oui, pour ceux qui en ont eu ^^

mardi 17 novembre 2009

Slides de la conférence "Bonnes pratiques de développement PHP" au Forum PHP 2009

Jeudi 12 et vendredi 13 novembre avait lieu, à Paris, le Forum PHP 2009, organisé par l’AFUP.

J’y ai donné une conférence intitulée "Bonnes pratiques de développement en PHP".
Voici les slides que j’ai utilisé comme support lors de cette présentation :


Vous pouvez aussi directement télécharger le fichier PDF correspondant.

En super-ultra-mega-résumé :

  • Utilisez un IDE ; pas notepad !
  • Ayez des notions d’utilisation de Linux : tôt ou tard, cela vous sera utile.
  • Ne travaillez pas sans contrôle de source, que ce soit centralisé ou distribué.
  • Ne développez que si nécessaire : réutilisez ! Que ce soit en vous basant sur une application existante, ou sur un Framework.
  • Adoptez, et respectez une norme de codage — idéalement, connue et reconnue ; celle du Framework que vous utilisez, par exemple.
  • Mettez en place des Tests Automatisés sur votre projet — à court terme, cela a un coût, oui ; mais vous vous y retrouverez, à moyen/long terme.
  • Documentez : votre code, votre application, et vos procédures.
  • Mettez en place une plate-forme d’intégration continue.
  • Utilisez un système de déploiement automatisé, et, surtout, documenté.
  • Et enfin : soyez curieux ;-)

Bonne lecture !

Les slides des autres conférences devraient prochainement être mis en ligne sur le site de l’AFUP : ils ont tous été récupérés par Perrick vendredi.


Et, au passage, le photos de ces deux jours commencent à apparaitre sur flickr : Photos du groupe Forum PHP.


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...

- page 1 de 9