XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Symfony, patterns et autres joyeusetés, petite mise au point

The 2008-12-16 at 08:42 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

Mon dernier billet sur les injections de dépendances et l’inversion de contrôle a été pris par certains comme une attaque à l’encontre de Symfony. Ce n’était pas voulu et voici la raison de ce billet.

Mon travail, celui qui me fait gagner ma vie, est dans le domaine des procédés industriels, en fait, dans la thermodynamique. Je fais des calculs d’équilibre de phases entre différents composants à différentes conditions, etc. Je travaille avec une multitude de langages (C, C++, Fortran, Delphi, Python) sur du code qui peut dater du début des années 70 jusqu’à du code frais de quelques minutes. Cela veut aussi dire que je travaille avec du code créé par de nombreuses personnes avec des compétences très variées et dans ce cas là on souffre du syndrome du débutant que voici :

Le débutant motivé :

  1. lit beaucoup d’articles de partout ;
  2. découvre chaque jour de nouvelles techniques ;
  3. découvre chaque jour qu’il peut appliquer la super technique X pour résoudre le problème Y ;
  4. finit par appliquer 17 techniques différentes dans un module pour résoudre le problème Z.

Remplacez technique par motif (pattern) et vous comprendrez le désastre.

En mettant en ligne, sans contexte, cette présentation, Fabien Potencier participe à cela, et c’est bien cela qui m’irrite profondément. D’ailleurs, si vous relisez mon billet, je le dis bien, il n’y a que les exemples que je trouve mal encadrés. Proposer de l’introspection sur un appel effectué dans le rendu de toutes les pages d’une application web est pour moi comme proposer un 33T pour transporter votre grand mère pour lui permettre d’acheter son pain.

Maintenant oui, cette présentation n’est que le support d’une présentation faite dans une conférence, mais le problème, c’est quand le recyclant sur le web, cette présentation se trouve avec une seconde vie, c’est de cela que je parle et de rien d’autres. J’ai fait des dizaines de présentations du fond du Japon jusqu’à la Californie, pas besoin de venir m’expliquer la différence entre le support et la prestation, merci.

Je ne fais donc pas du Symfony bashing, je recommande toujours à toute personne qui se pose la question "Quel framework choisir ?" d’utiliser 3 ou 4 et de faire une petite application avec, puis de rester avec celui qui convient. D’ailleurs, si vous voulez tester Symfony, c’est le bon moment, ils font un joli tutoriel.

Comments from readers

desfrenes said:

De toutes façons du bashing ça fait toujours de la pub gratuite ^_^

Sinon je trouve très bien que "le débutant" soit curieux et teste plein de choses, comment passer de débutant à expérimenté sinon ?
Bon, évidemment il n'est pas obligé de *tout* tester sur des applications en production ;-)

De même, comment reprocher à quelqu'un d'expérimenté de partager son savoir ? (au hasard... fabien potencier).

Je comprend bien qu'il manque pour toi un contexte mais enfin... c'est aussi au lecteur d'être critique, fut-il débutant.

Sinon je partage ton avis sur l'adéquation entre l'outil et la tâche.

Loïc said:

Je sais bien que le bashing est aussi de la pub. En fait, je n'ai aucun problème pour faire de la pub pour Symfony, je dis toujours, mieux vaut un framework, n'importe quel framework, que coder tout seul et finir avec un code genre Wordpress.

> De même, comment reprocher à quelqu'un d'expérimenté de partager son savoir ?

Attention, je ne fais pas de reproches contre le partage du savoir, je reproche un partage partiel.

> c'est aussi au lecteur d'être critique, fut-il débutant.

Oui et non, c'est très dur pour un débutant d'avoir l'esprit critique fasse à une présentation faite par une référence. L'habit ne fait pas le moine, mais il influence bien plus que ce que nous sommes prêts à accepter d'entendre...

Brice Carpentier said:

> que coder tout seul et finir avec un code genre Wordpress.
Comment ? Tu critiques Wordpress, mais tu ne te rends pas compte, c'est génial et patatati et patata !

Loïc said:

Aïe, promis, j'arrête les critiques, enfin, je vais essayer :D

tight said:

Vu le niveau, je vois mal un débutant se lancer dans l'implémentation d'un Container suite à la lecture des slides de Fabien... (ou en tout cas, pas sans un minimum de recherche).

Perso, j'avais déjà vu les slides avant d'assister à la présentation au forum PHP (ils sont en ligne sur son site depuis un moment, en anglais : http://www.aide-de-camp.org/talk/19/decouple-your-code-for-reusability-ipc-2008).
Ce que j'en ai retenu ressemble plus à "c'est une méthode intelligente pour gérer tel problème" plutôt que "il faut absolument que j'utilise ça maintenant".

Le débutant motivé avec ses 17 techniques se rendra compte du problème par lui-même. L'erreur fait partie de l'apprentissage, c'est un peu un cas de "quand on a qu'un marteau, tous les problèmes ressemblent à des clous"

desfrenes said:

> finir avec un code genre Wordpress
hors sujet mais... ce que je trouve le plus "sympa" dans wordpress c'est le schéma de base ^_^

jeannot said:

T'es méchant avec Fabien, je suis sûr que c'est un gentil garçon, peut être un peu gourmand . Du coup, ca m'a donné envie d'aller voir pluf, je suis un peu emmerdé > PHP 5.2 (pas portable du coup), j'ai regardé et ça me plait ... Fuel PHP me plait aussi (les espaces de noms et PHP 5.3 beaucoup moins) et je prendrais le temps de comparer les deux. Visiblement, tu es allé à l'essentiel et ... c'est bien là l'essentiel :d
(Pour wordpress, outre les tables, y'a l'enrobage qui vient s'ajouter)

Sur ce, merci à pluch ++

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS