Industrialisation PHP

9déc/108

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.

30avr/100

Revue de presse PHP de la semaine 17 (2010)

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

Doctrine 2 Beta 1 released

Après de nombreux mois de développement, la première beta de la future version 2 de Doctrine, le célèbre ORM pour PHP, vient de sortir. Beaucoup de changements au programme dont le changement conceptuel fondamental opéré en passant du design pattern Active Record à Data Mapper. Cela aura pour conséquence de casser la compatibilité avec la version précédente mais offrira en contrepartie un bien meilleur découplage des modèles.

Compilation détaillée de PHP sous Linux

Julien Pauli détaille dans un long article comment compiler PHP sous Ubuntu Server. Il liste également les extensions intéressantes pour compléter les fonctionnalités proposées en standard.

Advanced Regular Expression Tips and Techniques

Le site Nettuts+, spécialisé comme son nom l'indique dans la rédaction de tutoriels, propose cette semaine une initiation aux techniques avancées des expressions rationnelles, souvent improprement appelées "expressions régulières". On y trouve notamment comment insérer des commentaires dans des motifs complexes, utiliser des assertions et des conditions ou encore comment nommer un masque.

Python basics for PHP developers

Comme il n'y a pas que PHP dans la vie, cette semaine l'article bonus propose une initiation au langage Python pour les développeurs PHP.

6avr/102

Statistiques d’usage de PHP sur Debian

La distribution Debian recueille des statistiques d'usage des différents paquets qui la composent et publie les résultats dans le cadre de l'initiative Debian Popularity Contest.

Un mot sur la méthodologie

Comme toujours avec ce genre d'études, la première chose à regarder est la méthodologie. Les statistiques sont recueillies à l'aide du paquet popularity-contest qui n'est pas installé par défaut. Seuls les serveurs l'ayant installé sont donc pris en compte ce qui représente tout de même un peu plus de 90 000 serveurs à ce jour.

Plusieurs informations sont disponibles pour chaque paquet dont celles concernant leur installation, leur mise à jour récente et leur usage, appelé "vote". L'outil considère qu'un serveur "vote" pour un paquet si un programme du paquet ou d'un paquet dépendant a été lancé au cours des 30 jours précédents la mesure. Les données anonymisées sont envoyées à Debian chaque semaine.

Il faut bien entendu garder en tête que ces statistiques ne comprennent pas les installations faites à partir des sources ou à l'aide de piles LAMP packagées comme Zend Server ou Xampp. Ces chiffres sont donc en dessous du nombre d'installations réelles de PHP.

PHP 5 a clairement supplanté PHP 4

La comparaison des statistiques de PHP 5 avec celles concernant PHP 4 est intéressante. On peut remarquer que le paquet php4-common est installé sur 6,37% des machines et utilisé sur à peine 2,06% d'entre elles contre respectivement 45,44% et 34,44% pour son équivalent PHP 5. Cela montre clairement que PHP 5 a supplanté PHP 4, ce qui bon signe tant les avantages apportés par la dernière version majeure de PHP sont importants.

PHP 4 étant désormais de l'histoire ancienne, nous allons nous concentrer sur les statistiques de la version 5.

Le SAPI le plus utilisé est mod_apache

Un SAPI, ou Server API, est le moyen de mettre en œuvre PHP soit en ligne de commande (CLI) soit au travers d'un serveur HTTP (mod_apache, CGI, etc.). On peut constater que le module pour Apache est le SAPI le plus utilisé avec près de 30 % tandis que le mode CGI n'est utilisé que dans 5 % des cas.

A noter le taux d'usage de près de 18% de PHP en ligne de commande (php5-cli) ce qui est intéressant car ce mode pourtant très pratique est très souvent ignoré ou négligé.

PaquetInstalléUtiliséMis à jour
libapache2-mod-php539,66%29,12%11,02%
php5-cli24,86%17,92%11,27%
php5-cgi8,05%5,34%3,54%
libapache2-mod-php5filter0,09%0,08%0,03%

MySQL domine largement les autres connecteurs

Sans surprise, l'extension mysql domine largement les autres connecteurs de base de données avec un taux d'usage presque trois fois supérieur à celui des autres connecteurs réunis. A noter, le très faible usage d'ODBC tandis que Sqlite obtient un succès plutôt mitigé.

PaquetInstalléUtiliséMis à jour
php5-mysql29,55%20,98%7,95%
php5-pgsql5,19%3,54%1,87%
php5-sqlite3,69%2,59%1,57%
php5-odbc1,47%0,89%0,54%
php5-sybase0,98%0,60%0,37%
php5-interbase0,39%0,25%0,12%

PEAR est peu utilisé

Avec un taux d'usage de 3,41%, PEAR déçoit. S'il est en perte de vitesse constante depuis plusieurs années, certains de ses paquets restent pertinents comme PHP_CodeSniffer qui permet de s'assurer de l'application de règles de codage. Par ailleurs, de nombreux outils de qualité comme PHPUnit, Phing ou encore les eZ Components sont distribués par des canaux PEAR alternatifs  mais qui nécessitent l'usage du client officiel.

Les extensions PECL semblent peu utilisées

L'une des particularités de PHP est son découpage en extensions, chacune étant dédiée à une tâche précise. Il est donc aisé de compléter la panoplie de base avec les nombreuses extensions disponibles notamment au travers de PECL, le pendant de PEAR pour les extensions écrites en C.

Le taux d'installation très faible du paquet php5-dev, qui est nécessaire pour compiler ces extensions, montre leur faible utilisation.

Qu'en conclure ?

Il est difficile de tirer des conclusions de ces statistiques car elles ne sont pas représentatives de l'usage global de PHP. Cependant, elles confirment globalement ce que nous constatons au quotidien, à savoir qu'Apache et MySQL sont les outils les plus souvent associés à PHP.

Enfin, elles rappellent que si certains tirent pleinement parti des possibilités de PHP en utilisant PEAR et les extensions PECL, la majorité des utilisateurs se contentent d'un usage plus simple de PHP.