Comparatif des micro framework PHP

jeudi 07 juin 2012 à 22:51

Suite à mon article sur le manifeste microPHP, j'ai décidé de tester plusieurs micro frameworks. Au programme donc, Atomik Framework, Code Igniter, Flight, GluePHP, Limonade, Photon, Silex, Slim. Je les ai testé dans l'ordre alphabétique. J'ai choisi un peu tout ce que j'ai trouvé, sauf en ce qui concerne Code Igniter qui n'est pas un micro framework.

Voici donc les tests de quelques micro frameworks. Bien sûr, c'est subjectif : je ne mesure pas la vitesse d'affichage d'un «Hello World!» ou je ne sais quel benchmark… Tout d'abord, je ne suis pas vraiment doué pour faire ces tests, ensuite, si vous les voulez, d'autres s'en sont déjà chargé.

Personnellement, je préfère comparer quelque chose de bien plus important : la facilité d'apprentissage et l'agréabilité (que ce mot est moche). J'ai des amis qui codent avec des éditeurs textes bidon mais qu'ils adorent; à l'inverse, j'en connais que leur supérieurs forcent à utiliser un éditeur soit-disant très performant mais que eux détestent… Moi, je dis : chacun ses goûts.

J'ai quand même essayé d'être le plus objectif possible dans ces tests, mais ce n'est pas facile. Chacun aime certains aspects d'un outil alors que le codeur de la table d'a coté en préfère un autre. C'est le même problème ici.

Mais voici les détails de chacun des framework :

On trouve de tout dans les micro-framework. Mais de manière générale, ils vous laissent le choix dans la structure de vos projets. Ce qu'ils ont tous en commun, c'est le routing : c'est souvent le point le plus délicat à gérer soit-même proprement. C'est donc un élément rédibitoire dans votre choix pour un micro-framework : si vous n'aimez pas le routing proposé, testez en un autre. Et si vraiment vous n'avez pas trouvé chaussure à votre pied, modifié le système de routing de celui qui vous plait le plus ou revoyez vos besoin.

Personnellement, parmis ceux dont le système de routing me correspond, il y a Limonade, Silex et Code Igniter. Parmis les autres, certains proposent une gestion des méthodes d'appel HTTP. Personnellement, je ne vois pas l'intérêt de proposer une entrée différente pour le GET et le POST, mais ceci conviendra peut-être à vos projets…

Malgrès tout, j'ai trouvé que Atomik proposais une vraie solution pour faire du développement rapide et efficace. Je le met donc de coté en me disant qu'il y a moyen de changer ce petit détail moi-même. Et on ne dirait pas mais ça aussi c'est important : pouvoir modifier le fonctionnement interne du framework sans y passer 3 heures et sans craindre les effets de bord; ça permet d'avoir l'impression de rester maître de la situation et de pouvoir gérer des cas particuliers facilement qu'il ne seraient pas possible de gérer autrement. A ce niveau, Silex prend un petit coup : son Mo de code créer par des pro (les gars qui ont fait Symfony, c'est pas les premiers zigotos venu) est trop évolué pour le modifier rapidement sans crainte… Je conseil donc Silex à ceux qui connaissent déjà Symfony et qui veulent réutiliser les modules qu'ils connaissent déjà.

Parmis ceux qui m'ont déçu, il y a Photon : la documentation est indispensable et sur un micro-framework, pas besoin de faire 200 pages de démo. Pour Photon, je n'ai trouvé que 4 pages. Ensuite, il y a GluePHP : 30 lignes de code et ils appelent ça un micro-framework. Le ou les développeurs semblent avoir oublié qu'avant d'être un micro-framework, il faut être un framework. Enfin Code Igniter est trop gros pour être considéré comme un micro-framework. J'ai voulu voir ce qu'il donnait en tant que tel, mais c'est clairement surdimentionné pour un petit projet. Code Igniter est donc un framework un peu spécial : trop gros pour être petit, trop petit pour être gros.

Parmis ceux que je garde sous le coude et qui proposent de vraies bonne solution, je garde donc (dans l'ordre) Limonade qui, malgrès le fait qu'il n'utilise pas les objets est très bon, avec un système de routing très bon, que je risque de copier. Ensuite vient Atomik : simple, efficace, modifiable; c'est selon moi un tout petit Code Igniter fait pour remplir le rôle que celui-ci ne peut pas remplir dans ce test. Enfin Silex qui est pour moi une très bonne surprise : on sent qu'il à été fait par des personnes habituées à répondre à ce genre de problématiques et il y répond très bien.

Commentaires

  • mardi 07 août 2012 à 12:54, commentaire de Patrik :

    Bonjour

    Bon article que je suis en train de lire framework par framework, ce qui m'évitera de devoir tout tester moi-même. Merci d'avoir pris tout ce temps à évaluer ces divers mini-frameworks puis à rédiger ces fiches.

    Un petit soucis, le lien pour Code Igniter n'est pas bon, mais on rectifie vite le tir en tapant ce qu'il faut dans l'URL.

    Bonne semaine :)

  • samedi 11 août 2012 à 13:47, commentaire de Romain :

    Merci pour le commentaire, n'hésite pas à repasser pour me faire tes retours sur le framework que tu choisi.

    J'ai modifier le lien qui ne collait pas.

  • lundi 29 octobre 2012 à 17:19, commentaire de Finelizzyx :

    Bonjour,

    J'ai essayé quelques uns de ces micro-frameworks et j'ai quelques bricoles à ajouter :

    - Atomik Framework promettait beaucoup mais j'ai vité bloqué sur la manière d'organiser le site et aussi sur où (le template ? index.php ? mon prog.php ?) on met quoi (la route, l'action d'un formulaire, l'interrogation de la BD, etc...) (cela manque dans beaucoup de docs).

    - Limonade : plus de site, plus rien. Où se trouve-t-il ?

    - Il manque Fat Free : se présente bien, mais encore une fois : on met quoi où ?

     

    Mes interrogations viennent probablement de mon expérience encore réduite sur PHP (ses bonnes pratiques, sa syntaxe parfois obscure) en regard de mon expérience pourtant longue de développeur sur whatmille langages ayant un rapport hélas lointain avec le web.

    Au premier abord, je trouve que ces frameworks tentent de faire simple mais sans explications "terrain" mais au contraire théoriques, ils rendent l'approche du développement bien compliquée.

    "Hello World" : nickel (et encore, pas pour tous) ; bête formulaire d'authentification : usine à gaz.

    Avec du PHP pur, j'ai mis moins d'une heure à appréhender cette fonctionnalité.

     

    En tout cas merci pour tout ce travail ! ^_^

  • samedi 03 novembre 2012 à 15:00, commentaire de Romain :

    Bonjour Finelizzyx

    Il semble effectivement qu'il y ait quelques soucis avec le github de limonade. Voici quand même une page permettant de le télécharger :

    https://github.com/sofadesign/limonade/

    Concernant le problème de structure des micro-framework, il faut bien avouer qu'ils ne sont pas vraiment fait pour gérer de gros sites ou de grosses applications, mais plus pour faire des sites vitrine relativement léger. Pour des projets plus lourds où tu as besoin d'une structure, il vaut mieux utiliser des frameworks plus gros, type Symfony ou Code Igniter. Du coup, ils sont plus fait pour du «Hello World» que pour des requêtes complexes. Perso, j'ai mon propre framework (téléchargeable en bas de page, mais je suis en train de le refondre), du coup, j'ai ma propre idée de la structure d'un projet… donc j'apprécie justement qu'ils ne m'impose pas de structure car je peux mettre la mienne.

    En fait, je crois que ton problème sur la structure des projets, c'est ce que je recherche sur ces frameworks.

  • samedi 09 mars 2013 à 21:47, commentaire de slumpy :

    mmmmouais..... Classer CodeIgniter dans la catégorie microframework php...Euhhhh y a vraiment un mal entendu sur ce que l'on appelle un micro framework je crois là !

    Faut pas déconner mdr !! "codeigniter" microframework ?? codeigniter appartient à la catégorie des frameworks de moyen envergure ! Et tu m'excuseras faut revoir tes comparaisons de framework en php. Un hérisie franchement !

    Atomik = microframework
    Slik = Microframework
    Silex = Microframework (nommé comme micro framework de part fabien potentier le créateur de symfony mais pour avoir essayé silex je ne le classerais pas vraiment dans la cat des microframeworks non plus, c'est comme si on prenait codeigniter et que l'on retirer toutes les class, database, form, et helpers à gogo afin de ne concerver que le coeur de l'appli).

    Tape micro ou tiny framework dans google t'inquiète pas que tu ne trouveras pas codeigniter (une abération et cela met en doute réellement ton comparatif si tu ne sais pas faire la différence). 

Laissez un commentaire

captcha

En bref...

Dernier article

La dictature sur facebook

Cette semaine, l'actu, c'est Facebook qui trébuche. Le réseau social vient en effet de supprimer le droit de vote de ses membres. On a aussi GoogleNow sur Chrome, des nouvelles pas très réjouissantes de l'UIT, du piratage, l'étoile de la mort de Star Wars et une évasion échoué.

Ressources externes