Quel framework choisir ? Nous votons FuelPHP

Bookmark and Share
Lundi 14 novembre 2011
Posté par Julian Espérat

Quel framework choisir ? Nous votons FuelPHP
Chaque jour amène son lot de nouveaux frameworks. Comment faire son choix devant cette offre pléthorique ? Voilà la question que nous nous sommes posés au printemps dernier. Après des études et tests, nous avons finalement choisi un petit nouveau, FuelPHP. Cela fait maintenant six mois et nous ne l'avons pas regretté depuis. Voici pourquoi.

Sommaire du tutoriel
Développer sous FuelPHP

  1. Choix du framework
  2. Mise en place
  3. Création d'un projet
  4. Application type
  5. Cheat sheet
  6. L'ORM : gestion des relations

FuelPHP est le petit nouveau (la version 1.0 finale est sortie le 31 juillet 2011) qui commence à se faire un nom dans le monde PHP. Basé sur le HMVC, il ne fonctionne qu’à partir de PHP 5.3 et rassemble des bonnes idées de plusieurs autres frameworks connus :

Tout comme CodeIgniter, FuelPHP se veut léger et rapide, facile à apprendre et a peu de dépendances niveau serveur.

Tout comme Kohana, FuelPHP hiérarchise l'accès aux fichiers et possède un excellent Query Builder (générateur de requêtes SQL).

Tout comme Symfony, FuelPHP possède une ligne de commande, un outil de migration, un ORM et un système de templates.

On y trouvera également des inspirations de Ruby On Rails ou encore de CakePHP.

Je ne vais pas vous faire la liste complète des fonctionnalités, mais il faut savoir que malgré sa jeunesse, FuelPHP inclut déjà nativement énormément d’éléments. Outre tout ce que je viens déjà de citer, on y trouve aussi la gestion de la sécurité, les ACL, tous les moteurs de templates populaires (Mustache, Markdown, Smarty, Twig, Haml, Jade, Dwoo), la validation des formulaires, le REST, le scaffolding, l'envoi de mails, et j’en passe…

 

Simplicité de prise en main

À titre personnel j’ai été très enchanté par FuelPHP. Ayant déjà essayé d’autres gros calibre (Zend ou Symfony pour ne pas les citer), le coût à l’entrée est relativement important et il faut vraiment s’accrocher pour réussir à faire quelque chose. Au contraire, FuelPHP est vraiment très facile à prendre en main et on voit tout de suite le résultat de notre travail. On écrit peu de code et on comprend ce qui se passe !

Ok, mon discours est évangéliste, mais l’introduction doit bien vous faire envie de lire la suite, non ?

 

Pensé pour les développeurs

Tiré de la documentation officielle : "[...] FuelPHP est né de la frustration des développeurs avec les frameworks actuels. [...] Il tire sa fierté de sa syntaxe claire.". Le ton est donné !

Effectivement, FuelPHP est basé sur une approche pragmatique : il faut que ça soit simple pour le développeur. L’exemple qui suit (qui fera peut-être hérisser les poils sur la tête des puristes) permet de se faire une idée :

Les namespaces constituent un point central. Le cœur de FuelPHP a son propre namespace Fuel\Core. Les classes qu’il contient sont automatiquement aliasées au namespace global, quand elles sont appelées depuis ce dernier et qu’elles n’y existent pas déjà.

Concrètement c’est un jeu d’enfant à l’utilisation : pour accéder à la classe Controller fournie par le framework (et définie dans le namespace Fuel\Core), on accède simplement à la classe globale \Controller ! C’est rapide à écrire et très facile à retenir ! Dois-je préciser que dans Symfony, l’accès à cette même classe se fait via Symfony\Bundle\FrameworkBundle\Controller\Controller ? ;-)

Et on peut ainsi étendre voire même remplacer n’importe quelle classe de Fuel\Core en la définissant dans le namespace global.

Pour les packages et les modules (nous verrons un peu plus tard ce que c’est), la convention est tout aussi enfantine : pas de nom à rallonge ! Chacun utilise un espace de nom simple (à un seul niveau) correspondant à son nom.

 

Alors, ça vous donne envie ? Passons à l'installation.

Catégorie :FuelPHP
10 commentaires
  • Commentaire par Sybio
    Mardi 15 novembre 2011 18:06
    Dans Symdony 2, framework ultra flexible, on peut très bien enregistrer le namespace \Controller si ça nous chante :p
  • Commentaire par Jessy
    Mardi 15 novembre 2011 18:43
    Bon article, merci pour les retours! J'ajoute a la TestList ;)
  • Commentaire par Julian Espérat
    Mardi 15 novembre 2011 18:58
    @Sybio : certes, mais ça n'est pas la philosophie affichée ;)

    @Jessy : merci pour le reteweet. C'est quoi la TestList ?
  • Commentaire par Mathieu ROBIN
    Mercredi 16 novembre 2011 10:28
    Effectivement, ça a l'air intéressant. Je vais tester asap
  • Commentaire par john
    Jeudi 17 novembre 2011 06:45
    Le coût à l'entrée d'un projet symfony est ridiculement faible avec des developpeurs expérimentés. Mais je ne doute pas que fuel le soit également intéressant !
  • Commentaire par Nico
    Lundi 27 février 2012 00:30
    @John : pour des développeur Java peut être :p
    Pour des développeurs PHP qui veulent aller vite à l’essentiel sans user le clavier dans le verbeux et passer sa vie dans des fichiers de config Symfony2 est un cauchemar chronophage.

    Sans parler des performances de SF2, forcément ça a un coup sur les perfs tout ce code imbriqué, étendu, étiré, dans tous les sens ...

    J'y ai passé qq semaine de dessus, il y a des bonnes idées, des choses très intéressante mais les défauts de SF2 me pousse à chercher un autre framework.
  • Commentaire par Nico un autre
    Mardi 20 mars 2012 10:41
    @Nico SF2 possède énormément de qualité, et est encre en plein développement, et je suis d'accord avec Sybio, pour sa flexibilité. Je vais tester fuel, et surrement l'utiliser, néanmoins, je suis certain que symfony possède des qualités spécifiques qui me redirigernont ver lui pour d'autres projets.

    De plus niveau perf, c'est que de l'optimisation, ajout apc active les caches divers...
  • Commentaire par shad
    Dimanche 16 décembre 2012 19:49
    les performances de Syfmony2 sont au contraire remarquable à l'inverse des autres framework, après j'aimerais vraiment avoir le temps de faire un vrai benckmark entre fuelphp et symfony2, mais en terme de performance et de cache dans symfony2, ils sont remarquablement utilisé et cela n'est pas "le code dans tout les sens", car cela n'est pas le cas à l'inverse d'autres framework. Cela n'est pas parce que l'on ne comprend pas le framework qu'il en est pour autant moins efficace, d'un avis objectif on ne peut pas dire que symfony2 soit lourd au contraire, je ne me souviens plus des chiffres sur les tests que l'on avait effectué ainsi que de mon côté, mais sur 5000 et 10 000 requête le retour réponse était assez stupéfiant vue les énormes requêtes que nous héritions des anciennes applications de l'entreprise. Cakephp, yii & co étaient bien en dessous des performances de symfony2.
    En ce qui concerne Zend c'est différent car il y a tout à faire et ce qui implique un temps de dev non négligeable sur les besoins actuel des applications métier avec pour objectif réutilisabilité et cycle de vie plus long.

    Pour le moment les test que j'ai pu faire de FuelPHP me laisse voir un très bon concurant de syfmony2, j'ai fait un comparatif sur mon blog et un sujet sur le conception de puissance d'un framework, donc prise en compte du temps d'apprentissage, des perf, des points clés qu'il faut regarder etc...

    Je vois beaucoup de commentaire de dév qui disent "je comprends rien à symfony2 il est trop lourd ceci cela, il est pas bien" et j'en passe. Beaucoup de ces développeurs que j'ai rencontré avaient une prog de porc et manquaient terriblement de rigueur dans leurs développement, et n'avait qu'une maigre notion des frameworks ou bien encore des cms. Ils sont trop souvent resté dans le dév from scratch et dans leur coin à dire "ceci c'est de la merde" etc...

    Beaucoup de ces développeurs préfère concevoir leurs programme à eux, et on entrevoie bien souvent de très grosse faille de sécurité, de performance et de grandes méconnaissances sur les autres aspects du web. Ce à quoi ils ne pensent pas et qui est qu'une question de bon sens, c'est "qui va faire la doc pour comprendre leurs applications ?" moi aussi je peux créer mon application dans mon coin et dire je préfère "réinventer la roue" en gros.

    Mais cela n'est qu'une question de bon sens, j'ai un ancien collègue qui a cette mentalité, hélas le constat est là, on a du reprendre tous ses développements tant ils étaient mal pensé, codé et rempli de mauvaise pratique en terme de perf et sécurité.

    Ca n'est pas un cas isolé, mais comme on dit le borgne est roi au pays des aveugles.
  • Commentaire par Zbubu
    Vendredi 3 mai 2013 10:24
    Pour les curieux ... le très prometteur: http://phalconphp.com/
  • Commentaire par Gilles FELIX
    Lundi 6 mai 2013 09:04
    @Zbubu : c'est très intéressant ! Un sacré candidat niveaux perfs. Merci pour la découverte.

    Par contre, difficile d'imaginer un logiciel se basant dessus, cela réduirait sa cible aux utilisateurs pouvant installer une extension php en dev ET en prod.
Laissez votre commentaire :