Les frameworks PHP

Les frameworks PHP

On constate depuis quelques années un engouement pour les frameworks, notamment les frameworks PHP. Cet engouement n’est pas une mode, mais bel et bien une réponse à de nombreuses problématiques.
L’intérêt pour les frameworks PHP a connu son apogée vers 2010. 5 ans plus tard, ceux-ci en sont tous à des versions avancées et offrent de nouvelles fonctionnalités aux développeurs, et des atouts intéressants pour les entreprises.

Intérêt pour les frameworks

 

Un framework, c’est quoi ?

Commençons par le commencement. Selon Wikipedia ;

« En programmation informatique, un framework ou structure logicielle est un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d’un logiciel (architecture). »

Les frameworks sont donc conçus et utilisés pour modeler l’architecture des logiciels applicatifs, des applications web, des middlewares et des composants logiciels. Les frameworks sont acquis par les ingénieurs, puis incorporés dans des logiciels applicatifs mis sur le marché, ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.

 

Plus simplement, si l’on traduit le mot framework, nous obtenons littéralement : cadre de travail. Et c’est exactement ce qu’est un framework … un ensemble d’outils, de classes, de fonctions ou de scripts selon le modèle du framework, pour travailler (Plus rapidement ? Mieux ?).

 

Concrètement ça sert à quoi ?

Les frameworks vont permettre tout d’abord de développer plus rapidement  des applications web ou des systèmes d’information, et donc permettre aux entreprises de gagner en productivité, dès lors que le framework est maitrisé.
En effet, les frameworks PHP offrent plusieurs fonctionnalités, sous forme de classes pour les plus simples ou  de composants pour les plus complexes, permettant de créer rapidement certains éléments récurrents, comme par exemple des formulaires de contact pour un site internet, des interactions avec la base de données,  un système de gestion des utilisateurs, etc…
Pour les frameworks les plus complets (mais souvent aussi les plus complexes), la plupart des fonctionnalités dont nous aurons besoin dans notre projet existent déjà sous forme de modules (souvent appelés « composants » ou » bundle »). Il suffira alors de les ajouter au projet, et éventuellement de les modifier quelque peu, pour les rendre opérationnels et conformes aux attentes des clients.

Un autre intérêt mis en avant par les utilisateurs acquis à la cause des framework est la réutilisabilité des composants, avec très peu modification. Il suffit parfois simplement d’ajouter un lien dans un fichier de config (ou très souvent au sein d’un fichier router) vers le module, pour le rendre actif au sein du système.

Mais le principal intérêt est de permettre à une communauté (au sein d’une entreprise par exemple) de développer de manière identique. Un problème que rencontre souvent les entreprises est que chaque développeur programme un peu à sa manière (programmation fonctionnelle, procédurale, orientée objet …), sans parler de la façon d’organiser ses fichiers ou de nommer ses classes/fonctions. Le framework résout ces problèmes car il oblige à respecter une organisation qui se crée lorsque l’on installe le framework, et à très souvent respecter une nomenclature des fichiers (et des classes et/ou fonctions) très stricte.  Lorsque l’on maîtrise le framework, il est ainsi facile de trouver le fichier et la partie de code à modifier pour mettre à jour une fonctionnalité d’un système d’information, et ce, quelque soit le développeur qui a développé la fonctionnalité à la base.

Enfin, un framework  permet aussi de travailler facilement à plusieurs sur un même projet, et voir même, pour les frameworks les plus aboutis qui utilisent des moteurs de Template, de faire travailler les intégrateurs et les développeurs sur un même composant, quasiment en même temps.

 

Petit tour du monde merveilleux des frameworks

Il existe beaucoup de frameworks PHP, et il s’en crée certainement plusieurs chaque année. Tout d’abord, notons que la plupart utilisent une architecture MVC (Modele Vue Controler), voir HMVC (en  y ajoutant des Helper) et donc font appel à des notions de programation orienté objet, certainement pour la robustesse du code et l’adaptabilité des composants que cela permet.

Voici un petit aperçu des recherches effectuées depuis 10 ans sur les frameworks les plus connus ou les plus en vogue (Zend framework – Symfony – Laravel – Codeigniter – CakePHP)

Analyse de recherche sur différents frameworks dans le monde

Analyse de recherche sur différents frameworks dans le monde

 

Analyse de recherche sur différents frameworks en France

Analyse de recherche sur différents frameworks en France

 

Zend Framework, longtemps leader dans le domaine, voit sa domination décroitre de plus en plus, au profit de frameworks plus récents. Symfony étant un projet français, il perce bien plus en France que dans le reste du monde, et comme le montre le graphique suivant, Laravel, un framework pourtant tout jeune (2011), attire de plus en plus de développeurs.

Voici le résultat d’un sondage, effectué sur le site www.sitepoint.com, sur l’utilisation des frameworks PHP en 2015 (Source : http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/)

Sondage sitepoint.com sur l'utilisation des frameworkks PHP en 2015

 

Nous n’allons pas faire un comparatif de tous ces frameworks, chacun  ayant certainement plusieurs avantages et inconvénients. Par contre, on peut dire que certains frameworks sont bien plus difficiles à appréhender, comme Zend Framework ou Symfony, et nécessiteront un investissement plus important, en temps et en coup, pour obtenir un retour sur investissement et avoir un réel impact positif sur les temps de développement. Mais à terme, ils permettront réellement d’exploiter au mieux tout le potentiel des frameworks (réutilisabilité, travail en commun, gain de productivité …). Ces frameworks sont souvent préconisés pour de gros projets, nécessitant forcement beaucoup de ressources (en parfois peu de temps).

 

Certains, plus simples (mais pas moins efficaces) à prendre en main, comme CodeIgniter au Laravel, permettent d’obtenir de très bons résultats rapidement, sur de petits et moyens projets , mais ils n’offriront pas autant de possibilités que les plus gros (pas d’ORM, pas de système de cache ou de moteur de Template …)

 

A vous de décider 

L’utilisation d’un framework PHP n’est pas obligatoire mais elle commence à devenir intéressante pour des entreprises dans lesquelles plusieurs développeurs sont susceptibles de travailler ensemble sur un même projet.
De plus, si l’on se concentre sur l’utilisation d’un ou deux frameworks complémentaires, on peut gagner grandement en productivité. L’important est de choisir le bon framework en fonction des besoins liés à vos projets et surtout à leur ampleur.

 

 

Découvrez d’autres articles sur le développement : Node JS et Json