Industrialisation PHP

11oct/100

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.

14mai/102

Revue de presse PHP de la semaine 19 (2010)

Cette semaine encore, la revue de presse est courte. Mon parti pris depuis le début est de ne pas faire une resucée de ce que font très bien nombre de sites très connus comme PHPDevelopper.org ou Nexen.net. J'essaie plutôt de mettre en avant des articles pertinents qui, à mon sens, n'ont pas eu la visibilité qu'ils méritent.

Il me reste généralement dans ma besace nombre de bons articles mais qui ne sont pas directement liés à PHP, or j'ai choisi de ne mettre en avant qu'un "article bonus" par semaine. Peut-être devrais-je élargir la thématique et intégrer à cette revue de presse tous les articles qui touchent à l'industrialisation de PHP, au sens large. Qu'en pensez-vous ?

Après ces réflexions sur l'avenir de cette revue de presse, voici les articles de la semaine.

Writing Gearman Workers in PHP

Certains traitements prennent du temps. Il n'est donc pas possible de les effectuer pendant que l'utilisateur attend le résultat. Il est alors souhaitable d'effectuer ce traitement en tâche de fond et de prévenir l'utilisateur une fois celui-ci terminé. On appelle cela le traitement asynchrone. Il existe plusieurs techniques et outils pour gérer ces queues de travaux en attente.

Matthew Weier O'Phinney, le responsable du développement du Zend Framework, explique dans un billet comment écrire des workers pour Gearman. Gearman est un outil qui centralise les travaux sur un serveur auquel les workers se connectent pour demander du travail. Il s'agit de programmes simples, développés pour effectuer des tâches précises.

Unpredictable hashes for humans

Il est souvent nécessaire de générer des identifiants aléatoires dans une application web. Cette tâche qui semble simple au premier abord peut facilement amener des problèmes de sécurité si les valeurs générées sont devinables par un pirate. Il est donc impératif de choisir une stratégie fiable lors de la génération de valeurs aléatoires.

Checking for a live database connection considered harmful

L'article bonus de cette semaine explique pourquoi il est inutile et même préjudiciable de tester une connexion à la base de données avant d'effectuer une requête.

Voici comme chaque vendredi la revue de presse de la semaine qui vient de s'écouler.

PHP Smart Date Parsing: Natural Language Input (task.fm explained)

La saisie de date dans un formulaire est toujours compliquée. Deux logiques s'affrontent : l'utilisateur veut saisir la date dans un format qui lui paraît naturel tandis que le développeur souhaite un format strict directement exploitable techniquement. L'usage d'un calendrier est souvent une solution satisfaisante mais elle est parfois inapplicable notamment en cas de date relative, par exemple "le 3e jeudi du mois".

Heureusement avec un peu d'astuce et l'aide de PHP, il est possible de facilement extraire une date technique d'une phrase naturelle comme le montre un article du blog Enavu.

Find my Xdebug download wizard

Xdebug est un excellent outil mais il est parfois difficile à mettre en œuvre, notamment sur Windows. Pour remédier à cela, Son auteur, Derick Rethans, propose dorénavant un outil qui analyse votre phpinfo() et vous préconise les actions à mener pour le configurer selon le système d'exploitation.

Regex Clinic on Slideshare

Les expressions rationnelles, abusivement appelées expressions régulières, sont aussi puissantes que déroutantes à prendre en main. Heureusement, Andrei Zmievski, qui a présenté une session sur le sujet dans de nombreuses conférences à travers le monde, vient de publier sur Slideshare une version étendue de ses supports. Une lecture indispensable pour apprendre ou se perfectionner !

Tutoriels JMeter

Cette semaine l'article bonus est en réalité une liste d'articles traitant en détails de l'utilisation de JMeter pour faire des tests de charge.

20avr/100

Revue de presse PHP de la semaine 15 (2010)

Voici la revue de presse de la semaine qui vient de s'écouler.

Java versus PHP

Giorgio Sironi compare sur son blog Java et PHP. L'article ne fait qu'égratigner la surface mais il a le mérite d'exposer dans les grandes lignes les ressemblances et les différences de manière relativement objective.

Preparing for the Zend Framework Certification Exam

Le site php|architect a publié un retour d'expérience sur la préparation à la certification Zend Framework. Les ressources intéressantes pour se préparer y sont listées ainsi que l'élément clé pour bien aborder cet examen : la version actuelle de la certification porte sur la version 1.5 du Framework. Cela signifie que des composants importants des versions actuelles comme Zend_Application ne sont pas couverts car n'existaient pas à l'époque.

Migrating a dev team to an OO team

Bien que cela soit de moins en moins vrai, PHP traîne encore une réputation de langage principalement procédural avec un modèle objet pauvre. La faute revient aujourd'hui plus aux développeurs qu'au langage lui-même. Il est donc important de changer les mentalité et de mettre à jour les compétences de son équipe.

Le blog de la société Ibuildings liste 10 étapes pour amener en douceur une équipe habituée à la programmation procédurale à changer son mode de fonctionnement.

XPath regular expression matching in PHP 5.3

En attendant que la version 2.0 de XPath soit disponible dans PHP, il est parfois difficile de faire des requêtes complexes. Heureusement, depuis PHP 5.3 il est possible d'enregistrer des fonctions PHP pour les utiliser dans les requêtes XPath.

Remote collaboration and teams

Enfin, l'article bonus de la semaine traite des difficultés liées au télé-travail. L'absence de ses collègues entraîne une perte des contacts informels, voire inconscients, qui soudent une équipe. Il donne des pistes pour tenter de créer du lien malgré la distance et l'usage d'outils de communication modernes comme la messagerie instantanée.

1mar/105

Vers une convergence des frameworks PHP ?

Ces dernières semaines ont été propices aux annonces dans le monde des frameworks PHP. Tandis que Zend annonçait le début du travail sur la version 2 de son framework, Sensio Labs sortait une pré-version de Symfony 2.0. Ces deux frameworks devraient sortir pour la fin de l'année ou au début de l'année prochaine. Devant ces annonces importantes, on pourrait s'attendre à un choc des titans pour la domination du marché des frameworks PHP mais la réalité est plus complexe et plus intéressante.

Une vision commune

Dès le début ces deux frameworks ont été conçus par des entreprises pour des entreprises. Chacun a bien entendu su créer une communauté forte autour de son produit mais la vocation première est de consolider l'arrivée de PHP en entreprise.

Pour cela, ils ont mis en place différentes mesures qui rassurent les DSI :

  • Licence Open Source permissive
  • Support commercial
  • Certification (Pour Zend Framework seulement pour le moment)
  • Formation
  • Documentation abondante
  • Tests unitaires

C'était particulièrement important devant la myriade de frameworks dont il était bien difficile d'évaluer la pérennité. Ce point est crucial lorsqu'on investi dans des développements importants.

Des passerelles techniques

Depuis longtemps, le tutoriel de Symfony propose d'implémenter un système de recherche en utilisant le composant Zend_Search_Lucene qui fait partie de Zend Framework. Fabien Potencier, le meneur du projet Symfony, a également annoncé lors de la conférence Symfony Live 2010 que deux composants supplémentaires de Zend Framework seront bientôt utilisés dans Symfony. Il s'agit de Zend_Log et Zend_Cache qui, comme leurs noms le laisse supposer, permettent respectivement de gérer la journalisation des messages et le cache applicatif.

Il a également indiqué que le framework allait abandonner son outil maison de tests unitaires au profit de PHPUnit, projet fortement établi et utilisé pour tester Zend Framework.

De son côté, Zend n'est pas en reste. La société a récemment annoncé que Doctrine serait utilisé par la version 2 de son framework. Cet ORM est un projet indépendant mais qui est également utilisé par Symfony. Par ailleurs, son meneur actuel, Jonathan H. Wage, est employé par Sensio Labs.

Une volonté de souder la communauté

Au-delà des aspects techniques, il semble y avoir une réelle volonté de la part des deux meneurs de ces projets pour travailler ensemble au lieu de se livrer une guerre inutile.

La présence de Matthew Weier O'Phinney, le responsable de Zend Framework, à la conférence Symfony Live 2010 à Paris est un signe fort de cette communication entre les deux projets. Les propos de Fabien Potencier confirment cette volonté de souder la communauté PHP qui s'égare parfois dans des querelles de chapelles stériles.

I would love if people from different framework communities can work together more often, like what we have done with the PHP 5.3 interoperability group. I would love if we can share more components. I would love to discuss how we can make our PHP community grow faster.

Is it a dream? I hope it's not. And I have a proposal. Let's organize an event where several PHP framework communities can discuss and share ideas. Anyone?

Cette conscience de la nécessité de coordonner les efforts des différentes communautés semblent dans l'air du temps car des représentants des principaux projets PHP ont travaillé ces derniers mois à définir une charte pour l'architecture des composants de leurs projets respectifs afin de faciliter l'interopérabilité entre eux.