Les micro framework PHP de 2017

Micro Framework PHP

Qu’est ce qu’un Micro Framework PHP?

Un micro framework PHP est un framework PHP léger et de petite taille. Il ne contient généralement que les outils/librairies de base nécessaires au routage, à la gestion des requêtes & réponses et à l’affichage/templating d’une page. Ils s’opposent aux frameworks dit full-stack, bien plus riches et complexes à maitriser. L’usage n’étant pas du tout le même.

De par leur légèreté et leur système de routage simple à mettre en oeuvre, ils permettent la mise en place d’API REST ou de micro services très rapidement. Bien sûr, cet article s’étend autour des micro frameworks PHP mais il en existe dans tous les langages (Python, C#, Java, NodeJS, JavaScript, …).

Quel est l’état de l’art en 2017 ?

Depuis mon article de 2014 sur le Top 5 des Micro Frameworks PHP, les choses ont un peu évoluées. Certains frameworks ont disparus, d’autres ont évolués pour devenir des frameworks complets. A noter qu’il existe un classement Slant des 10 principaux micro frameworks PHP en adéquation avec mon classement. Voici donc un Top 5 à date.

1. Fat-Free Framework

Fat-Free Framework, aussi connu sous l’acronyme F3, est arrivé courant 2013. Actuellement dans sa version 3.6, ce framework est plutôt léger (65 Kb) et bien fourni en plugins et extensions.

Il supporte un bon nombre de bases de données SQL / NoSQL et la communauté a développée un grand nombre d’extensions (processeurs d’images, panier d’achat, authentification OpenID, …). Plus encore, il est orienté sécurité (anti spam, protection DDOS, vérifications DNSBL, contrôle de traffic & bande passante et analyse de profils).

Seule ombre au tableau : malgré une belle communauté sur GitHub, il y a peu de commits et le suivi des anomalies remontées est limité.

Communauté GitHub : 2 085 étoiles.

Plus d’informations : 

2. Slim

Php slim framework

Slim est un très bon micro framework PHP. En version 3.8.1, outre son approche orienté Middleware, il supporte l’injection de dépendances (PSR-11) et le standard des messages HTTP (PSR-7). Peu d’extensions disponibles, il vous faudra coder une bonne partie à la main ou réaliser vos propres extensions par vous-même.

L’approche est bonne, la communauté est plutôt étendue et les performances sont au rendez-vous. Autre point important, les correctifs des failles de sécurité sont une priorité pour l’équipe de maintenance.

Communauté GitHub : 8 299 étoiles.

Plus d’informations :

3. Lumen

Lumen

Lumen est le micro framework dérivé de Laravel, un framework PHP full stack bien conçu et largement utilisé. Etant familier de Laravel, vous n’aurez aucun mal à utiliser Lumen qui n’est autre qu’un sous ensemble de classe de ce dernier. On y retrouve du basic mais également un certains nombre de composants en standard (authentification, autorisation, cache, files, validation, …). Et si cela ne suffit pas, il est toujours possible de revenir sur Laravel moyennant un portage du code. C’est propre et la documentation est de qualité.

Communauté GitHub : 4 954 étoiles.

Plus d’informations : 

4. Silex

Silex PHP

Silex est le petit bébé du framework Symfony, un framework PHP très connu et largement utilisé dans de très grosses applications Web. C’est à mon avis, l’un des micro framework le plus complet à aujourd’hui ou à privilégier pour des applications à taille moyenne, le support de Symfony aidant dans ce choix. Si vous connaissez Symfony, vous n’aurez aucun mal à utiliser ce framework et à réutiliser des composants existants ou customs.

Néanmoins, il n’est pas le plus léger et simple à mettre en oeuvre pour de petites API. Cette richesse se paye sur les performances, Silex arrive bon dernier dans les benchmarks. Autre restriction, Silex ne supporte pas le standard PSR-7.

Communauté GitHub : 3 631 étoiles.

Plus d’informations :

5. Flight

Flight php

Il n’est pas nouveau, n’est pas le plus riche mais suffira pour des API REST ou de petites applications Web. Le code est clair et l’utilisation de méthodes statiques augmente la lisibilité de votre code source. La documentation est succincte et efficace. On fait ici dans le minimalisme.

Communauté GitHub : 1 773 étoiles.

Plus d’informations : 

Et au niveau benchmark ?

Je ne suis pas un grand fan des benchmarks qui présentent le plus souvent des résultats bien différents de la réalité et de l’usage. Néanmoins, sur un Hello World classique, les résultats sont les suivants et montre un net écart entre les différents framework du marché :

Pour résumer sur notre Top 5 :

  • Fat Free Framework 3.5 : 965 requêtes / seconde
  • Slim 3.0 : 550 requêtes / seconde
  • Lumen 5.1 : 415 requêtes / seconde
  • Silex 2.0 : 343 requêtes / seconde
  • Flight : N/A

Ce benchmark est extrait du comparatif de frameworks PHP de Kenjis sur Github.

En conclusion

Le framework Lumen remplace Laravel dans le top du classement. Phalcon n’est lui non plus dans le top du classement des micro frameworks mais reste pour moins un des meilleurs frameworks PHP actuels. Le choix d’un framework dépend, encore une fois, des fonctionnalités à implémenter et de l’expérience personnelle de chacun.

A aujourd’hui, les benchmarks le montrent : les résultats de Fat Free Framework sont meilleurs que ceux de Lumen et Slim réunis. Silex souffre toujours du poids de Symfony. Mais pour faire une simple API ou un PoC, Lumen, Slim ou même Flight suffit.

Personnellement, j’aurais tendance à choisir dé-facto Lumen même si je sais que Slim est plus rapide. Quand a F3, j’aimerais bien le tester sous peu afin de voir ce qu’il y a réellement sous le capot. Pour une simple API ou un bouchon REST, je privilégierais Flight qui me semble plutôt rapide à prendre en main.

Crédit photo : 

Photo by Markus Spiske on Unsplash

3 commentaires On Les micro framework PHP de 2017

Laisser un commentaire