Revue de presse Industrialisation PHP de la semaine 49 (2010)
Après quelques semaines d'absence pour cause de vacances puis de préparation du Forum PHP 2010 et enfin de grosse charge de travail ces dernières semaines, la revue de presse reprend son rythme habituel. Pour de bon, je l'espère !
Top-5 certifications for every PHP programmer
Joshua Thijssen s'est lancé un défi étonnant cette année : passer 12 certifications techniques. Il vient de terminer son dernier examen et partage avec nous son expérience en listant les 5 certifications qui, selon lui, sont les plus utiles pour un développeur PHP.
Real-life example of Closure usage with PHP5.3
Les closures, ou fonctions anonymes, sont une fonctionnalité récente de PHP. Le principe est intéressant mais par manque d'habitude on est parfois bien en peine pour leur trouver un usage concret. Gonzalo Ayuso nous propose de les utiliser pour effectuer des calculs dynamiques sur des données, travail souvent demandé au SQL.
PHP Code review checklist
Ceux qui ont vu ma conférence sur les revues de code au Forum PHP, m'ont entendu parler de l'importance des checklists dans la phase préparatoire. Voici une proposition de liste de ce type. Certains points sont discutables mais c'est une bonne base pour construire son propre référentiel.
PHP Commit Hooks
Stocker ses développements dans des dépôts Subversion est une bonne pratique mais elle ne doit pas s'arrêter là. Il convient également de s'assurer que la qualité des commits. Subversion propose un mécanisme de hooks qui permettent d'effectuer des traitement à différentes étapes de la vie du dépôt. L'outil PHP Commit Hooks propose de mettre facilement en place des hooks de pre et de post commit pour effectuer certaines actions comme s'assurer de la présence d'un message de commit, valider la syntaxe des fichiers ou vérifier l'application des conventions de codage.
Profiling with XHGui
Xdebug est un excellent outil pour profiler du code lors de la phase de développement mais il est trop gourmand en ressources pour être utilisé en production. Facebook a développé pour son propre usage XHProf, et son interface de visualisation XHGui, qui permet d'avoir une vision claire des performances d'une application en production. Ces outils sont à présent disponibles pour tous.
Revue de presse Industrialisation PHP de la semaine 40 (2010)
Understanding APC
APC est une extension PHP qui est à la fois un cache d'OPCode et un cache de données utilisateur. Le blog TechPortal explique son fonctionnement, le compare avec memcached et propose des clés pour déterminer quand choisir l'un ou l'autre.
Zend Framework app's PHPUnit suite 3x faster
Zend a choisi PHPUnit comme outil de tests unitaires pour son framework. Leur bonne intégration, notamment grâce à Zend_test, facilite beaucoup les tests d'application développées avec Zend Framework. Cependant, les tests touchant à la base de données restent lents à cause des vidages de tables après chaque test. Olek Janiszewski propose une solution ingénieuse à ce problème : utiliser des transactions et faire systématiquement un rollback après le test unitaire.
Créer une autorité de certification et des certificats SSL auto-signés
Utiliser des certificats SSL est très important pour améliorer la sécurité des applications web. Cependant, ceux-ci coûtent souvent cher. Il peut donc être intéressant de créer ses propres certificats lorsque cela est possible, notamment dans le cas d'un usage interne à une organisation.
Bugfixes without Tests are Anti-fixes
Dans un court article, Dan Ackerson rappelle a juste titre qu'une correction de bogue sans test revient à faire un pari dangeureux. On ne peut être sûr que le remède n'est pas pire que le mal et que ce bogue ne réapparaîtra pas plus tard. C'est d'ailleurs une des choses que les utilisateurs détestent le plus : ils ne comprennent pas comment un problème corrigé peut survenir à nouveau.
Examine All HTTP/HTTPS Traffic on Windows with Fiddler2
Bien que discret, le protocole HTTP est l'élément indispensable au fonctionnement des applications web. Il est parfois nécessaire d'étudier le détail des échanges HTTP pour débusquer l'origine d''un problème. Pour cela il existe des outils que l'on appelle proxies de développement. Comme leur nom l'indique, ils se placent entre le client HTTP, généralement le navigateur mais pas seulement, et le serveur HTTP analysant tout ce qui transite. Parmi les logiciels gratuits disponibles sur Windows, on trouve Fiddler2 dont parle le blog Coding This dans un article récent.
The story of one MySQL Upgrade
Cette semaine, le blog MySQL Performance, nous conte par le détail le déroulement d'une mise à jour périlleuse d'un serveur MySQL. On y apprend les étapes définies et les outils utilisés.
Revue de presse Industrialisation PHP de la semaine 26 (2010)
Voici la dernière revue de presse avant les vacances. Selon l'actualité, j'espacerai peut-être un peu les revues de presse pendant les deux mois qui arrivent.
10 Tips for Optimizing MySQL Queries (That don’t suck)
Les conseils d'optimisation pullulent sur internet. Malheureusement, le meilleur côtoie parfois le pire comme le montre Jesse Farmer avant de proposer une liste des 10 optimisations pour MySQL qu'il considère utiles.
C'est la fête du test
Dans le prolongement de mon article sur le TestFest PHP 2010, Frédéric Hardy a rédigé un article qui explique en détails comment écrire son premier test unitaire pour PHP.
Xdebug 2.1
Derick Rethans a publié cette semaine la version 2.1 de son outil Xdebug. Cette version est la première à être totalement compatible avec PHP 5.3. Au menu des nouveautés, on trouve notamment la possibilité de tracer l'assignation des variables, de désactiver les opérateurs @ et de savoir quel bout du code a défini des entêtes HTTP.
Do yourself a favour and don’t test using HTTPS
Utiliser des connexion HTTPS en production est une très bonne chose mais cela complique souvent les tests IHM. Adam Goucher explique les raisons du problème et propose de tout simplement ne pas utiliser HTTPS lorsqu'on n'est pas en production.
Revue de presse Industrialisation PHP de la semaine 25 (2010)
Cette semaine la revue de presse est assez hétéroclite et propose quelques innovations à surveiller de près.
PHP: Client side caching for all MySQL extensions
PHP 5.3 a introduit mysqlnd, un pilote natif pour PHP dont le but est de remplacer la libraire libmysql. Cela n'a pas d'incidence directe sur l'usage des extensions permettant de dialoguer avec MySQL (mysql, mysqli, PDO_MySQL) mais ce nouveau pilote apporte de nombreuses améliorations techniques et notamment la possibilité d'écrire des plugins pour interagir avec les requêtes SQL qui passent par le pilote. Un peu à la manière de MySQL Proxy. Le premier plugin tirant parti de cette possibilité vient d'arriver et il permet de faire du cache de requête du côté de PHP.
Multiple PHP versions on the same IIS server
De nombreux articles expliquent comment utiliser plusieurs versions de PHP sur la même instance d'Apache mais aucun pour IIS. C'est désormais chose faite grâce à un développeur de Microsoft. Attention cependant, si vous avez déjà installé PHP avec un installeur, il vous faudra d'abord effectuer une manipulation avant de pouvoir utiliser cette technique.
Exploring the software behind Facebook, the world’s largest site
Royal Pingdom, le blog du service de monitoring Pingdom, consacre un article à la relation entre Facebook et l'Open Source. Il aborde les charges astronomiques supportées par leur architecture ainsi que les logiciels développés ou utilisés par Facebook.
State of Symfony 2 online conference – a killer feature revealed!
Sensio Labs a dévoilé cette semaine certains aspects de la prochaine version majeure de son framework : Symfony. L'un de ces aspects est particulièrement innovant. Il s 'agit de la prise en charge des Edge Side Includes, un mécanisme de cache partiel de pages HTML développé par Akamaï et proposé au W3c pour normalisation. Nous reviendrons sur cette notion très intéressante dans un prochain article.

