Industrialisation PHP

24sept/100

Revue de presse Industrialisation PHP des semaines 32 à 38 (2010)

Maintenant que l'été est derrière nous, il est temps de reprendre nos revues de presse hebdomadaires. Cette revue de rentrée va traiter de ce qui c'est dit d'intéressant depuis le début du mois d'août.

Apache 2, Cherokee, LigHTTPd, Nginx Benchmarked with Static Files, PHP5 Script and WordPress

La guerre des serveur HTTP est déclarée depuis longtemps entre l'omniprésent Apache et son outsider LigHTTPD. Depuis quelques temps cependant, de nouveaux venus ont fait leur apparition. Parmi eux, Nginx et Cherokee.

Leur panoplie fonctionnelle est encore loin de faire de l'ombre à Apache mais leurs qualités se trouvent plutôt sur le terrain des performances. Il était temps de les comparer sur 3 usages (affichage de fichiers statiques, de scripts PHP simples et d'un blog WordPress) pour y voir plus clair.

java, le papy du web : sa pertinence hier, aujourd’hui, et demain

Une fois n'est pas coutume, je vais vous parler d'un article sur Java. On parle beaucoup de l'avenir de PHP mais ses concurrents ont également leurs péripéties. Il est intéressant de voir comment Java s'est construit et comment il évolue.

Forget Concatenation; Format your strings!

Des études ont montré que jusqu'à 70% du temps passé à travailler sur un morceau de code est dévolu à sa maintenance. Il est donc primordial que celui-ci soit clair et lisible. La concaténation de données complexes met souvent à mal ce but. La solution est souvent de privilégier le formatage.

Les interfaces, c'est bon, mangez-en !

Les interfaces sont probablement la fonctionnalité la plus sous-utilisée par les développeurs PHP de la Programmation Orientée Objet. Elles permettent pourtant de créer du code structuré mais découplé.

Exception Best Practices in PHP 5.3

Dans la série des concepts de la Programmation Orientée Objet sous-utilisés par les développeurs PHP, le second sur la liste me semble être les exceptions. Elles sont présentes dans le langage depuis la version 5.0, qui est sortie il y a 6 ans déjà, mais il est encore peu courant d'en voir un usage intensif et efficace dans le code rencontré. Ralph Shindler explique comment les utiliser au mieux et tirer parti des nouveautés introduites dans PHP 5.3.

Raw vs. cooked PHP $_POST variables

L'une des forces de PHP tient aux multiples petits détails destinés à faciliter la vie d'un développeur. Il arrive cependant que le côté magique de ces fonctionnalités puisse être déroutant si on n'en connaît pas le mécanisme interne. C'est notamment le cas de la gestion des champs de formulaire dont le nom se termine par "[]". PHP les interprète comment étant des tableaux mais ce n'est pas ce que dit HTTP, d'où parfois des confusions.

Things I learnt tracking a billion events in 24 hours

L'équipe de Playtomic, un outil analytique destiné aux éditeurs de jeux flash, doit quotidiennement faire face à une forte charge sur ses serveurs. Dans un article récent, ils nous font part des leçons apprises dans la gestion de cette situation.

14juin/100

Revue de presse Industrialisation PHP de la semaine 23 (2010)

C'est avec un peu de retard que je vous présente ma revue de presse de la semaine passée.

NGINX + PHP-FPM + APC = Awesome

Apache est un excellent serveur HTTP, robuste et très paramétrable. S'il est suffisant pour la majorité des utilisations, il peine parfois à tenir de forte charges. Il faut alors se tourner vers des serveurs à la couverture fonctionnelle moindre mais taillés pour encaisser de grandes quantités de requêtes. Les deux plus connus dans ce domaine sont LightTPD et nginx. C'est l'installation et le paramétrage de ce dernier que cet article explique en détails. Au passage, l'auteur parle de PHP-FPM, une manière de mettre en œuvre PHP dont on entendra beaucoup parler dans les prochains mois car elle a été intégrée dans le tronc de PHP.

Sikuli

Il existe plusieurs outils, comme Selenium ou Watir, pour automatiser des actions dans des interfaces graphiques notamment pour effectuer des tests d'IHM. La plupart de ces outils utilisent un mécanisme interne à la technologie testée pour pouvoir interagir avec elle. Ils ne peuvent donc pas tester les technologies ne fournissant pas un moyen d'introspection.

Sikuli est un nouvel outil qui fonctionne de manière révolutionnaire. Il se base sur l'affichage de l'interface testée et cela par le biais de captures d'écran. Ce principe ne nécessite aucune manipulation interne de la technologie testée. Il est donc utilisable avec n'importe quelle application pourvu qu'elle produise un affichage. Le concept est un peu difficile à expliquer avec des mots mais la vidéo de démonstration est très explicite.

Why are interfaces widely ignored in the PHP world and what use do they have when working with symfony?

PHP est souvent moqué par les communautés de langage plus fortement orientés objet. La cause a longtemps été un modèle objet très basique. Cependant, depuis l'arrivée de PHP5, il y a déjà presque 6 ans rappelons-le, cette raison est caduque. Certes, le modèle objet de PHP reste perfectible mais pour qui sait l'utiliser pleinement, il est possible de faire de fort belles choses.

Dorénavant, le problème vient surtout des développeurs qui ne tirent pas suffisamment parti de la Programmation Orientée Objet. Christian Schaefer prend l'exemple des interfaces qui sont trop souvent ignorées ou mal utilisées alors qu'elles apportent tant de souplesse lors de la conception d'une application.

Git Reference

Par sa nature décentralisée et sa puissance, Git a révolutionné les usages que nous avions de la gestion de version. Cependant, il n'est pas toujours aisé de l'appréhender, surtout quand on a l'habitude des systèmes centralisés comme CVS ou Subversion.

Pour découvrir Git, il existe un excellent livre, Pro Git, qui est consultable en ligne. Je vous recommande d'ailleurs d'acheter, comme je l'ai fait, une copie papier pour remercier l'auteur. Ce livre a beau être parfait pour comprendre les concepts et les rouages de Git, une référence rapide aux commandes courantes est un compagnon utile lorsqu'on fait ses premières armes. C'est ce que propose Git Reference en décomposant les commandes en différentes catégories : Bases, branches et merges, partage et mise à jour, inspection.