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
- Choix du framework
- Mise en place
- Création d'un projet
- Application type
- Cheat sheet
- 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.