Laravel comme framework PHP plutôt que CodeIgniter?

Ça fait un bon moment que j'utilise le framework CodeIgniter pour développer en PHP. La structure simpliste, la documentation très complète, la flexibilité et l'utilisation du paradigme MVC sont quelques raisons parmi de nombreuses autres qui m'ont motivé à utiliser la plateforme.

Cependant, depuis quelque temps, j'étais déçu de voir qu'il n'existait aucun système de paquet à la npm pour Node.js ou bien les Gems en Ruby. Ça devient beaucoup plus complexe réutiliser du code sur plusieurs projets quand il n'existe aucun moyen de le rendre portable.

Logo du framework CodeIgniter

En cherchant rapidement une solution, le principal résultat que j'ai pu trouver à l'époque pour CodeIgniter était Sparks, un gestionnaire de paquets réalisé par des développeurs indépendants. Suite à l'utilisation, je trouvais que le système n'était clairement pas à point et la procédure d'ajouts de nouveaux paquets à la base de données plutôt complexe. Sinon, il existe un répertoire third_party/ qui semble être un semblant d'implantation de paquets dans le coeur même de CodeIgniter, mais très peu documenté et ne semble pas pour le moment répondre à mes besoins.

Découverte de Laravel

J'ai donc changé mon cadre de recherche, passant d'un système de paquets pour CodeIgniter vers un tout nouveau framework supportant les paquets par défaut. Laravel est donc apparu fièrement dans les meilleurs résultats sur Google, accompagné de plusieurs articles signés d'anciens utilisateurs de CodeIgniter qui évoquaient avoir abandonné le bon vieux CodeIgniter pour des raisons similaires aux miennes.

Logo du framework Laravel

La communauté autour de Laravel est nettement moins importante que celle de CodeIgniter: après tout, Laravel a bientôt 2 ans d'existence alors que CodeIgniter en a au moins 6. Cependant, le framework Laravel est sur une très bonne lancée. Le système de paquets (nommés Bundles) est intégré par défaut dans le coeur de Laravel et il est accessible grâce au script en ligne de commande Artisan. C'est donc une interface CLI comparable à npm de Node.js, mais programmé en PHP.

J'ai toujours bien apprécié la ligne de commande. Surtout pour les frameworks du genre, c'est super pratique pour réaliser de courtes opérations, installer des paquets, générer du code, etc. C'est comparable à l'exécution d'opérations bêtes sur Linux pour installer des paquets (à la apt-get des systèmes Debian ou pacman de mon fidèle Arch Linux). Cependant, c'est une autre paire de manches sous Windows. La ligne de commande par défaut cmd.exe est très limitée et ultra moche à l'oeil: aucune coloration syntaxique, peu puissante, largeur fixe et j'en passe... J'essaye encore de configurer PHP et Artisan pour fonctionner sous Cygwin afin d'avoir un semblant d'environnement de développement comme on pourrait retrouver sur Linux.

Ma ligne de commande personnelle avec Mintty

Bref, comme premier projet, je vais me lancer dans la reprogrammation du backend de mon blogue (oui oui, encore une fois) en conservant la même structure que celle utilisée pour le moment. En espérant que le tout puisse répondre à mes besoins :)! Je vais considérer le tout comme une étape intermédiaire supplémentaire pour arriver à Node.js!

Pour en savoir plus, je vous invite à consulter la documentation de Laravel, le livre Laravel: Code Happy de Dayle Rees ainsi que le répertoire de Laravel sur Github.