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.
Revue de presse PHP de la semaine 16 (2010)
La semaine qui vient de s'écouler a été assez calme dans le monde PHP. Cette revue de presse sera donc plus courte que d'ordinaire.
The class design checklist
Giorgio Sironi propose sur son blog une liste de questions qu'un développeur devrait se poser avant de commiter une nouvelle classe. Ces questions portent sur le nommage, la structure et la taille de la classe.
Bien entendu, il existe des outils pour détecter la plupart des problèmes que soulèvent ces questions mais se les poser soit-même a également un rôle éducatif qui contribue à améliorer ces compétences.
Find your Files
Fabien Potencier, a présenté le nouveau composant Finder du framework Symfony. Celui-ci permet de parcourir une liste de fichiers grâce à des méthodes très intuitives conçues avec des Fluent Interfaces dans l'esprit Domain Specific Language.
eZCheck
eZPublish est un CMS puissant mais complexe. Il est parfois difficile de s'assurer lors d'un passage en production qu'on a bien optimisé la configuration en conséquence et qu'aucun réglage facilitant le développement n'est pas resté activé ce qui pourrait compromettre les performances ou pire encore : la sécurité.
Pour faciliter cette vérification, le site eZ France vient de publier eZCheck, une liste de points à vérifier avec des explications détaillées pour chaque aspect.
Bash et l'auto-complètement
L'article bonus de cette semaine est assez particulier mais devrait ravir ceux d'entre vous qui utilisent PHP pour écrire des programmes en ligne de commande. En effet, il explique très simplement comment mettre en place un mécanisme d'auto-complétion pour votre programme. A vous donc l'usage de la touche tabulation dans vos propres programmes.
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.
Revue de presse PHP de la semaine 14 (2010)
Après une (trop) longue interruption, je reprends ma revue de presse hebdomadaire du monde PHP mais cette fois sur ce blog et non plus sur mon blog personnel.
Le but est de vous proposer une sélection d'articles traitant de PHP au sens large, c'est à dire incluant éventuellement les technologies associées. Ces articles seront principalement tirés de la partie "Lecture" située dans la barre de droite de ce blog mais au lieu de simplement donner un lien, je résumerai le contenu de l'article afin d'expliquer ce que je trouve intéressant dedans. Le nombre d'articles proposés variera en fonction de l'actualité.
Comme toute sélection celle-ci sera nécessairement subjective mais je m'efforcerai de piocher dans ma veille personnelle des articles pertinents pour le plus grand nombre.
Enfin, lorsque l'occasion s'en présentera, j'essaierai d'ajouter un article qui ne sera pas directement lié au monde PHP mais qui mérite d'être lu.
Trêve de bavardage, passons à la revue de presse de la semaine.
Mort de PHP6 + 20 jours
L'actualité récente de PHP a été assez tumultueuse concernant les futures versions. Certains développeurs considèrent que la marche actuelle vers PHP 6 n'est pas la bonne et qu'il faut changer de méthode afin de sortir de l'enlisement actuel.
A la suite de son premier bilan, Frédéric Hardy propose un résumé circonstancié 20 jours après le début de ces discussions animées sur l'avenir de PHP et les actions menées depuis lors.
A Primer for PHP 5.3's New Language Features
Au cours du travail préliminaire sur la version 2.0 de Zend Framework, Matthew Weier O'Phinney et son équipe se sont penchés sur les nouvelles fonctionnalités de PHP 5.3. Leurs découvertes montrent des cas d'usage des namespaces, des closures et la méthode magique __invoke().
Cet article pointe également les limites de ces nouvelles fonctionnalités et certains aspects contre-intuitifs lorsqu'on les découvre.
Don't reinvent the wheel ... invent the car !
Sous ce titre anglophone se cache un très bon article d'olivier Hoareau qui gratte là où ça fait mal. Il s'attache à démonter les discours faciles sur la mise en place de bonnes pratiques de développement, en particulier sur l'usage d'un framework.
On rencontre souvent des discours creux ponctués de mots-clés mais en poussant un peu plus loin la discussion, on découvre généralement que les bonnes pratiques affichées cachent un manque de maîtrise des outils et des méthodologies voire de PHP lui-même.
Introducing phpfarm
Tester son code avec différentes versions de PHP est souvent compliqué. Pour la librairie PEAR et ses très nombreux paquets c'est un réel problème. Heureusement, une solution simple à mettre en œuvre est désormais disponible grâce à phpfarm.
Cet outil permet d'installer simplement de nombreuses versions de PHP pour un usage en ligne de commande ce qui est suffisant pour lancer des tests unitaires. Il est également possible d'utiliser ces versions de PHP avec Apache via CGI. Les possibilités offertes sont énormes.
Neural Networks in PHP
Les réseaux neuronaux sont un concept récent qui vise à reproduire le fonctionnement du cerveau pour traiter des données. L'avantage de ce système c'est qu'il est adaptatif et peut apprendre de ses échecs. Une application neuronale sera donc théoriquement capable d'améliorer ses résultats avec le temps.
Le blog du site PHP Classes explique la théorie des réseaux neuronaux et propose un exemple d'implémentation avec le framework Neural Mesh.
How MySpace Tested Their Live Site with 1 Million Concurrent Users
MySpace n'est pas une société comme les autres. La preuve, pour tester la tenue à la charge de son site en vue de l'introduction d'une nouvelle fonctionnalité elle a mis en place 800 machines virtuelles Amazon EC2 afin de simuler 1 000 000 d'utilisateurs concurrents.
Vous n'aurez sans doute jamais besoin de tester une telle charge mais l'idée d'utiliser le Cloud pour simuler rapidement un afflux massif de visiteurs est intéressante.
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é.
| Paquet | Installé | Utilisé | Mis à jour |
|---|---|---|---|
| libapache2-mod-php5 | 39,66% | 29,12% | 11,02% |
| php5-cli | 24,86% | 17,92% | 11,27% |
| php5-cgi | 8,05% | 5,34% | 3,54% |
| libapache2-mod-php5filter | 0,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é.
| Paquet | Installé | Utilisé | Mis à jour |
|---|---|---|---|
| php5-mysql | 29,55% | 20,98% | 7,95% |
| php5-pgsql | 5,19% | 3,54% | 1,87% |
| php5-sqlite | 3,69% | 2,59% | 1,57% |
| php5-odbc | 1,47% | 0,89% | 0,54% |
| php5-sybase | 0,98% | 0,60% | 0,37% |
| php5-interbase | 0,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.

