La Case de l'Oncle Tom

Livre blanc sur les frameworks PHP : présentation et explications

Couverture du livre blanc «Frameworks PHP pour l\'entreprise»

Il existe 4 phases dans la vie d’un développeur :

  1. celle où il aime tout créer lui-même
  2. celle où il aime utiliser un outil déjà tout prêt
  3. celle où il aime concevoir son outil avec d’autres outils tout prêt
  4. celle où il aime que les autres conçoivent pour lui (mais là il est patron ou armé d’une horde de stagiaires ;-) )

Les frameworks font partie de cette troisième catégorie. Ils existent dans à peu près tous les langages : CSS, PHP, JavaScript, Java, C#, Python, Ruby etc.
Mon discours portera sur les frameworks PHP, parce que c’est mon langage de prédilection mais aussi parce qu’un livre blanc sur les frameworks PHP pour l’entreprise est récemment sorti. Il parlera aussi bien aussi bien aux décisionnels qu’aux développeurs, à leur compte ou pour celui d’une entreprise.

De l’intérêt d’utiliser un framework

Un framework est littéralement ce que l’on peut appeler un socle logiciel : il propose des fonctionnalités de base et vous les utilisez pour concevoir votre propre application.

J’essaierai de faire court en énumérant une liste de quelques points à faire valoir dans l’utilisation d’un framework pour concevoir une application Web :

  • développement accéléré
  • convention over configuration : suivez les rails des conventions plutôt que de tout paramétrer
  • DRY : écrivez le code une fois et réutilisez-le pour éviter le copier-coller (sans parler des gains de maintenabilité)
  • mutualisation du code : un même socle pour plusieurs applications
  • concentration du développement sur le code métier
  • le framework vous décharge des tâches pénibles : sécurité, gestion des URL, gestion des permissions utilisateur, manipulation des bases de données, gestion du cache, accès aux fichiers etc.
  • génération automatique d’interfaces (admin generator), de base de données (ORM), de modules/applications (scaffolding) etc.
  • vecteur d’apprentissage individuel et collectif
  • bénéfices de tout le travail d’une communauté … et de celui que vous réinjecterez

A contrario, on pourra critiquer les frameworks pour leur plus forte consommation en ressources qu’un développement maison.
Ce n’est évidemment pas une raison valable pour passer à côté d’autant plus qu’il existe de nombreuses solutions pour palier/réduire ce problème avec les gestionnaires de cache et les accélérateurs de code.

Exemple d'arborescence de projet symfony

Framework PHP ou CMS ?

Maintenant vous me direz : pourquoi développer un logiciel avec un framework au lieu d’utiliser un bon CMS des familles ou tout autre logiciel faisant son office ?
Ce n’est à mon sens pas la bonne question à se poser : un framework n’est pas une fin en soi. Le choix du logiciel dépendra essentiellement du besoin, immédiat et futur. Vous aurez beau avoir le meilleur développeur d’un CMS de votre pays, si le choix de la solution technique est déjà erroné, il ne suffira pas à éviter la catastrophe.

J’ai beaucoup accroché à cette formule le jour où je l’ai entendu : si vous estimez à au moins 50% l’utilisation de spécifiques dans une solution logicielle existante de type CMS, vous faites fausse route. Le spécifique EST votre solution, le CMS devient une simple fonctionnalité.
Dans le cas d’un développement spécifique, le choix d’un framework est dans ce cas naturellement prescrit.

Dans tous les cas, ce sont vos besoins qui doivent vous guider vers le choix d’une solution et non l’inverse. Ne partez pas surtout d’une solution pour tenter d’y combler vos besoins.

Les principaux frameworks PHP

Le livre blanc sur les frameworks PHP expose en détail les frameworks majeurs en PHP avec leurs avantages, inconvénients et surtout une grille comparative permettant de mettre à bout à bout leurs différentes fonctionnalités.

Toutefois on peut retenir ces noms de frameworks PHP :

On pourrait classer ces frameworks en 2 catégories :

  • les briques logicielles : ils se présentent comme des briques indépendantes qu’on peut utiliser à souhait dans n’importe quel projet, y compris d’autres frameworks. C’est notamment le cas de PEAR, EZ Components et Zend Framework ;
  • les frameworks à proprement parler : ils imposent une structure particulière et des lignes directrices de développement pour être plus efficace. On citera dans ce cas symfony, CodeIgniter et CakePHP

symfony : champion toutes catégories

Écran de première installation de symfony

Lors de la lecture du livre blanc sur les frameworks PHP, vous remarquerez très probablement que le framework symfony a tout pour plaire. C’est en effet à l’heure où j’écris ces lignes le framework PHP le plus abouti et le plus intéressant à analyser.
Il jouit d’une excellente réputation, d’une incroyable stabilité et d’une communauté très active, quantitativement et qualitativement parlant. Si on ne devait en garder qu’un, ça serait lui.

Pourquoi j’apprécie énormément symfony :

  • une documentation fonctionnelle et une documentation de l’API complètes
  • utilisation intensive de fichiers YAML pour le paramétrage
  • les fonctionnalités d’amin generator, de gestion de base de données avec l’ORM Propel et les outils d’automatisation qui en découlent
  • facilité d’intégration d’Ajax sans pondre une seule ligne de JavaScript
  • grand confort de développement
  • des conventions inspirées des plus grands (Ruby on Rails, Django etc.)

Conclusion

Développeurs : renseignez-vous et intéressez-vous à au moins un framework. C’est bien pour le CV et vous gagnerez du temps.
Décideurs : exigez de savoir quelle solution on vous préconise et surtout, pourquoi celle-là. À plus forte raison si votre projet comporte beaucoup de besoins spécifiques, demandez s’il s’agit d’un framework et si ce n’est pas le cas, pourquoi ça n’a pas été envisagé. Vous gagnerez aussi du temps et j’espère de l’argent.

Les frameworks sont aujourd’hui partout et ont acquis une certaine maturité. Ces lettres de noblesse les rendent utilisables aussi bien pour des petits besoins que ceux d’entreprises, peu importe leur taille. Les gains de temps et l’incitation à la production de qualité sont des facteurs non-négligeables pour la pérennité de vos applications.

Attention toutefois : un mauvais développeur et/ou une mauvaise conception prédomineront toujours. Votre fromage industriel aura toujours le même goût, peu importe la qualité du pain ;-)

Je radote mais j’espère que vous trouverez suffisamment d’informations pour vous convaincre dans le livre blanc des frameworks PHP pour l’entreprise. C’est ce genre de publications qui me font aimer la société dans laquelle je travaille ;-)

Commentaires

  1. Claude dit :

    C’etait une page de publi-information pour Clever Age.

  2. Oncle Tom dit :

    Forcément, j’y travaille. Je n’ai pas été payé pour écrire ce billet : j’ai animé des interventions autour des frameworks PHP, j’en utilise tous les jours et j’ai participé à la relecture de ce livre blanc.
    Est-ce pour autant que je ne dois pas en parler ?

    Ce livre blanc a reçu des retours très positifs, autant en profiter au lieu de spéculer sur de l’inutile ;-)

  3. Cyril dit :

    J’avais lû ce livre blanc dès que tu l’avais annoncé sur Twitter, et effectivement il est très intéressant. Peut être un peu trop pencher vers Symfony, mais j’ai apprécié le lire, et c’est en partie ce qui m’a poussé à lire la doc de Symfony et de suivre le tutoriel Askeet.

  4. D’une façon générale, j’ai remarqué que les décideurs sont « pour » l’utilisation d’un framework, tandis que les développeurs son « contre » avec tout un tas de bonnes raisons (leurs propres bibliothèques, pas de productivité avec un outil pas maîtrisé, ne pas se sentir reconnu pour leur immense talent personnel…). Alors évidemment, être pour ou contre, c’est pas vraiment la bonne question. Mais c’est ce que j’ai remarqué.

  5. Oncle Tom dit :

    @fx : les habitudes, c’est toute une histoire ;-)

  6. thibault dit :

    @François-Xavier : C’est marrant, j’aurai plutôt imaginé l’inverse. Des développeurs pour (c’est génial, c’est puissante, c’est nouveau, c’est beau, etc.), et des décideurs contre (c’est nouveau, on ne maitrise pas, c’est mal, etc.)

  7. tenshu dit :

    effectivement chez nous c’est le contraire.
    On bosse sous symfony depuis peut et on a pas à ce plaindre.

    Ha si l’internationalisation est encore un peut mal foutu côté back office.

  8. Sylvain dit :

    Pour faire un joli jeu de mot : je préfère le fromage artisanal ;)
    Bien plus savoureux, même si des fois y’a des ratés et qu’il faut foutre une partie de la production en l’air !
    Ceci dit, je vais lire ce livre blanc et choisir un framework, j’en ai vraiment besoin pour un soucis de productivité !

  9. Oncle Tom dit :

    @Sylvain ah mais l’artisanal j’aime ça ! À ta disposition pour en reparler vu que tu es de Bordeaux … joli site en tous cas ;-)

  10. Sylvain dit :

    Merci, c’est de l’artisanal complet ;)
    J’ai voulu venir aux blog camps mais pas eu le temps jusqu’à présent, peut être la prochaine !!

    (Coucou Cyril :D )

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.


Propulsé par WordPress, Blueprint et WP-LESS.