Comme il m'arrive d'avoir du temps libre pendant mon stage, j'en profite pour lire de nombreux articles sur la programmation objet en PHP, la conception de sites, framework ou applications web.

Je vais donc vous faire une petite liste des plus int√©ressants. Beaucoup d'articles datent de 2004 ou m√™me avant. La plupart sont en PHP 4, il faut donc savoir ce que l'on peut maintenant faire de mieux gr√Ęce √† PHP 5 et son nouveau mod√®le objet.

Pour commencer, un petit tour sur la doc officielle et son paragraphe sur le langage objet en PHP 5. La lecture complète de ce paragraphe est plus qu'instructive, et changera sans doute votre vision des objets PHP.
La partie sur la surchage est tr√®s int√©ressantes, pour pouvoir faire des choses du genre $objet->variable = 'chouette';, o√Ļ variable n'existe pas r√©ellement en tant que propri√©t√©s de l'objet. La m√™me chose est possible avec les appels de fonctions.
La petite page sur Réflexion et ses différentes classes/interfaces est tout aussi intéressante pour qui veut faire des instanciations et appels de méthodes dynamiquement et proprement.
Enfin, la minuscule page sur les masques introduit ce qui suit.

Qu'est-ce qu'un masque (ou design pattern ou patron de conception) ?
Wikipédia nous répond très simplement :

Un patron de conception est un concept destiné à résoudre les problèmes récurrents suivant le paradigme objet.

En lisant cet article, une fi√®vre studieuse est mont√©e en moi pour lire tous les articles sur chaque patron de conception. Certains sont tr√®s peu explicites, il faut donc se creuser un peu la t√™te pour en voir l'application ou l'impl√©mentation quand elle n'est pas donn√©e. Parfois, il est plus facile de lire le code et le comprendre, puis de remonter √† la description pour comprendre √† quoi cela sert vraiment. L'id√©e ici n'est pas d'utiliser tous ces patrons de conception, mais c'est d'en conna√ģtre leur existence et leur fonctionnement. Plus tard, si vous vous retrouver face √† un probl√®me susceptible d'√™tre r√©solu par l'un de ces design pattern vous vous en souviendrez et vous pourrez l'appliquer rapidement, puisque vous l'aurez compris.

Ensuite, je me suis mis en tête de lire sur les différentes implémentations de ces patrons de conception PHP. C'est là que les vieux articles entre en jeux.
Le plus important est PHP Patterns, dont le dernier article date de 2005, mais dont la pertinence des articles et les exemples simples en font selon moi une référence. La partie la plus intéressante se trouve dans la partie design. Lisez-donc un maximum d'article en gardant à l'esprit que c'est du PHP4, et qu'il faudra donc repasser ça à la sauce PHP 5 à grands coups d'abstract, interfaces et autres...

Et puis avec ces lectures, j'atteri sur ce post √† propos de Smarty et des moteurs de templates, de 2001 mais qui garde tout son sens encore maintenant. La plupart des arguments sont pertinents, quelques-uns un peu moins... Et puis l√† o√Ļ √ßa devient encore plus int√©ressant, au d√©l√† de la discussion, c'est sur cette page o√Ļ la personne donne un exemple utlra-l√©ger mais ultra-fonctionnel d'un moteur de templates.

Et puis d'autres liens, donnés en vrac :

Enfin, une liste de framework, tous ayant des points de vues différents et des philosophies différentes. Les regarder et se plonger un peu dans le code de chacun est long est fastidieux, mais croyez-moi, très instructif !

  • CakePHP, souvent √† comparer √† Ruby on rails
  • Sympfony R√©aliser par l'entreprise fran√ßaise Sensio Labs
  • Zend Framework
  • onPHP et une ancienne doc Absolument gigantesque d'un point de vue objet, et m√™me trop...
  • Copix Fran√ßais, tr√®s actif et utilis√©¬†!
  • Jelix Fran√ßais aussi, d√©buter par un ancien d√©veloppeur de Copix

Et plein d'autres sur Wikipédia fr et un joli comparatif sur la version anglaise.

La branche des développeurs d'IBM a posté un premier billet sur un comparatif détaillé des 3 premiers cités ci-dessus, à suivre.

Voilà, bonne lecture à tous, et si vous en avez d'autres sous le coude, n'hésitez pas à les mettre en commentaires ici.