Demander un devis gratuit

CodeIgniterCakePHPSymfony ou encore Zend Framework… Si vous êtes développeur web, vous en avez forcément entendu parler, peut-être même en utilisez-vous un (ou plusieurs). Si l’utilisation d’un framework est parfois une évidence, il n’est pas toujours recommandé. Découvrez dans quels cas il est vraiment utile d’utiliser un framework PHP, et pourquoi.

Mais déjà, c’est quoi un framework ? 🤔

Pour ceux qui l’ignorent encore – ou ne sont pas certains de savoir ce que c’est – un framework est un outil de travail (souvent open source, donc « gratuit ») pour les développeurs d’application. D’ailleurs, le terme « framework » pourrait être traduit littéralement en français par « cadre de travail », mais avouez tout de même que « framework » est plus agréable. De toutes façons, en informatique, l’anglais est toujours de mise.

Vous devez penser qu’un « cadre », ce n’est pas vraiment un « outil ». En fait, je préfère dire que les frameworks sont des outils de travail, au même titre qu’un marteau vous servira à planter un clou, mais ne le fera pas à votre place. Je dis cela parce que trop de gens pensent à tord qu’un framework, c’est comme un CMS (système de gestion de contenu), mais plus difficile à utiliser. 🙄

Un framework, c’est un ensemble de composants, ce n’est PAS un générateur de code, et encore moins un atelier de développement rapide (RAD) ! Utiliser un framework, c’est simplement s’éviter de réinventer la roue.

Evolution de la roue
L’homme a toujours réinventé la roue, mais son concept est toujours le même : elle est ronde et elle roule !

Pour vous aider à mieux comprendre, je vais reprendre l’exemple du marteau. Avant la venue des frameworks, les développeurs fabriquaient le marteau et le clou. Seulement voilà, chacun a sa façon de faire, alors on voyait parfois des marteaux qui se cassaient en deux, des clous qui ne tenaient pas ou se brisaient dés le premier coup. Ce n’est pas le fabricant qui était incompétent, non. En fait, c’était souvent parce qu’il était débutant, et parfois, parce qu’il n’avait pas assez testé la solidité des outils créés. Et même si un développeur expérimenté avait bien fait les choses, bien souvent, il était le seul à savoir manier son marteau ; ce qui était gênant pour le travail en équipe… 😕 Un framework, dans notre exemple, c’est avoir le marteau et le clou que d’autres ont déjà façonné (et testé).

Si vous regardez bien les sites internet, ils ont tous les mêmes choses : des URL propres (la majorité d’entr’eux en tout cas), des formulaires, des pages, des menus, des images, et ils utilisent quasiment tous une base de données. Avant l’arrivée des frameworks, de nombreux développeurs s’amusaient à faire du copier-coller, car ça leur semblait inutile de faire quelque chose qu’ils avaient déjà fait par le passé. En recopiant, ils apportaient souvent des améliorations à leur code, et ça rendait leurs programmes de plus en plus puissants, et performants. Un framework, c’est une collection de ces petits bouts de codes.

Pourquoi c’est bien d’utiliser un framework PHP ?

Utiliser un framework permet de bénéficier de l’expérience des autres développeurs, mais aussi d’assurer que notre application est mieux structurée, mieux sécurisée, grâce à des composants testés, approuvés et utilisés par beaucoup. Bien sûr, ce serait mentir de dire qu’un framework ne fait pas gagner un peu de temps au développeur, mais c’est mentir aussi de dire qu’un framework fait tout le travail.

Le gros avantage d’un framework, c’est sa réutilisabilité. En clair, il peut servir pour plusieurs projets. De plus, il contient des composants prêts à être utilisés, ce qui évite de faire un site web en partant de zéro. Le développeur peut donc se concentrer uniquement sur les besoins spécifiques du projet. Il n’a donc plus à se soucier de la sécurisation des formulaires, du traitement des images… et d’autres fonctionnalités qui reviennent dans quasiment tous les projets.

Un framework n’impose pas autant de limites qu’un CMS, en partie parce que ce n’est pas du tout la même chose. Cette bibliothèque de composants permet de produire des sites sur mesure, mais on peut également s’en servir pour faire des CMS. C’est le cas par exemple du CMS Magento qui est basé sur Zend Framework, ou encore Prestashop qui a fini par adopter SymfonyUn framework est donc assez souple et laisse de nombreuses libertés au développeur. En effet, libre à lui d’utiliser ou non certains composants du framework.

Autre avantage, c’est l’instauration de bonnes pratiques de codageZend Framework par exemple, impose aux développeurs de respecter une convention particulière, fort inspirée de celle de PEAR. Cette convention est une collection de petites règles à respecter. Par exemple, on donnera des indications précises pour nommer les variables, les méthodes et les classes. Le respect de ces règles permet aux développeurs de produire un code propre, cohérent et compréhensible. C’est ce qui facilite aussi sa maintenabilité.

Ceci dit, un framework requiert une certaine maitrise du langage (ici, le PHP). En effet, si vous ne savez pas faire de programmation orientée objet (POO), il vous sera difficile d’utiliser un framework. Aussi, en savoir plus sur la méthode MVC (Modèle, Vue, Contrôleur) est plus que conseillé. En bref, les frameworks sont destinés à des développeurs confirmés. 😎

Enfin, dernier avantage et non des moindres : si toute une équipe utilise le même framework, alors il est plus simple de reprendre le travail d’un autre. En effet, parmi les « pertes de temps inutiles », celle d’essayer de comprendre le code en spaghetti du collègue est en bonne position. Le framework permettra alors au développeur de se concentrer sur le plus important, et rapidement.

Mais alors, pourquoi ce n’est pas toujours le bon choix ? 🤔

Déjà, l’utilisation d’un framework n’est pas forcément un gage de qualité. Comme je l’ai dis plus haut, c’est ni plus ni moins qu’un outil de travail. On peut vous mettre un super marteau entre les mains, rien ne garanti que vous ne ferez pas un trou dans le mur en voulant planter un clou. Dans le développement web, c’est la même chose, vous pouvez imposer à un développeur l’utilisation d’un framework, ça ne voudra pas dire pour autant qu’il en fera bon usage.

Bien sûr, c’est un peu une perte de temps de réinventer la roue. Des tas de développeurs se sont cassés la tête à réunir les éléments répétitifs, pourquoi s’embêter à tout refaire ? En fait, certains pensent qu’utiliser un framework, c’est choisir la facilité. Ils appuient leurs arguments sur le fait que ces outils de développement mettent un frein certain à l’apprentissage, à la créativité et à l’innovation. Et vous savez quoi ? Ils ont parfaitement raison ! 😊

Tout d’abord, en ce qui concerne l’apprentissage. Un débutant qui adopte trop vite un framework va manquer de connaissances pratiques. D’ailleurs, certains professeurs invitent les étudiants à essayer de refaire des fonctions natives de PHP. L’intérêt à cela n’est pas de les torturer mais bien de leur apprendre la programmation. Si on incite ceux qui débutent à se former à un framework, ils risquent d’en devenir dépendants, incapables de faire une application web sans y avoir recours. Alors, je le dis et je le répéterai toujours : la théorie pour la connaissance, la pratique pour le savoir-faire 😎.

Le pire, c’est qu’il y a des intervenants professionnels qui disent « Ne développez pas ! Utilisez les CMS, apprenez les frameworks ! ». C’est n’importe quoi ! 😠 C’est un discours de commercial où le but est de faire vite et bien. Alors oui, dans le milieu professionnel, il vaut mieux utiliser les ressources dont on dispose, mais ce n’est pas un conseil à donner à quelqu’un qui apprend, ou qui débute.

Maintenant, vous devez penser « Si je ne suis pas débutant, il vaut mieux toujours partir sur un framework ». Et bien non, pas vraiment. Imaginons que votre framework n’est qu’un kit du parfait ouvrier avec un marteau et des clous, vous n’allez quand même pas accrocher un poster au mur avec des clous, si ? 😇 Et oui, dans cet exemple, il est évident qu’on utilisera plutôt des punaises, donc pas besoin d’un gros marteau. Dans le web, c’est pareil, pour faire un site de type « one page », pas besoin d’un framework, le HTML couplé au CSS sera largement suffisant.

Enfin, je termine avec la créativité et l’innovation. Je vais être clair : utiliser l’existant n’a jamais rien donné de nouveau. Prenez l’exemple d’une simple chaise. Quand on l’a inventé, elle avait peut-être une place assise et quatre pieds (notez que j’ignore complètement l’histoire de la chaise, c’est juste pour la métaphore). Avec l’idée d’un framework, on aurait ajouté un dossier, des couleurs, et on aurait surement pu changer la matière, ajouter du tissu etc. Bref, on aurait certainement fait de jolies chaises. Mais imaginez qu’on se serait toujours contenter d’adopter ce même concept… Et bien, les chaises roulantes n’existeraient pas ! Pour créer un fauteuil roulant, il a bien fallu réinventer la chaise.

Le choix dépend du projet…. et de vous !

Au final, on en revient à notre fameuse question, est-ce toujours un bon choix d’utiliser un framework PHP ? 🤔 La réponse n’est pas « non », mais ce n’est pas « oui » pour autant. C’est d’ailleurs ce qui fait que tant de développeurs en font débat sur la toile. Il n’y a pas de réponse directe à cette question, puisque tout dépend de votre projet… et de vous aussi !

Dans un cadre commercial, il faut tenir compte qu’il y a un client. Vous avez donc tout intérêt à utiliser un framework si vous en maitrisez un. Cela vous aidera à respecter les délais, mais plus important encore, à faire une application optimisée. L’utilisation du framework facilitera le travail en équipe, et vous bénéficierez des dernières avancées en matière de sécurité informatique, et d’optimisation de site web.

Dans le cadre d’un apprentissage, c’est déconseillé d’utiliser un framework ! Je l’ai dis alors je ne me répéterai pas sur le pourquoi du comment. Mais si vous débutez, il est important de passer les étapes dans le bon ordre. Le framework est certainement la dernière étape de votre apprentissage. Vous avez le temps d’apprendre, ce serait idiot de ne pas en profiter 😉.

Dans un projet personnel, la décision ne dépend que de vous. On a toujours du temps pour un projet personnel. Et l’avantage majeur, c’est qu’on a aucune contrainte. Ce qui nous incite à le faire, c’est parfois l’envie d’apprendre, d’innover, ou simplement l’envie de maitriser son programme à 100 %. Vouloir réinventer la roue n’est pas un mal, c’est parfois un besoin. Celui de comprendre comment ça marche en essayant de le faire soit-même. N’ayez pas honte d’avoir envie de tout refaire à votre idée. Dites-vous que même si votre programme ne révolutionne pas le web, il aura eu le mérite de vous avoir appris pas mal de choses 😇.

Chaque cas est différent. Personnellement, je pense qu’un framework est un allié pour un développeur, alors je ne refuse jamais son aide, mais je n’ai pas forcément toujours besoin de lui 😏.


🚀PHP

Rédigé le et modifié le

Et vous ? Qu'en pensez-vous ?

Des questions ? Un avis ?

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  1. Y a aussi les FW spécifiques développés en interne pour une entreprise « client » spécifique, ca veut dire, maitriser ce FW ne donnera pas une valeur ajoutée à votre CV si vous envisagez de postuler à d’autres boites, mais valorise votre prestation chez ce même unique client. Reste à voir si le développeur veut s’arrêter à un terminus FW Spécifique ou continuer dans l’apprentissage dans l’univers du standard.

    • Exact mais il faut bien avouer que maitriser un premier framework aide à travailler sur un nouveau. De plus, un candidat met de la valeur à son travail s’il a conçu ou participé à la conception d’un framework, même spécifique. 😉

  2. Article intéressant, je suis d’accord, beaucoup d’écoles de développement en 5 mois utilisent des frameworks sans même enseigner les bases, le langage natif… je trouve ça inutile et surtout, ça donne des incompétents en puissance .

  3. Merci beaucoup pour tes commentaires, cela m’a permit d’éclairé mes idées sur le sujet.

Expérience
+ de 11 ans d'expérience
Garantie
Garantie incluse
France
Made in France